16 messaggi dal 30 maggio 2002
Buonasera a tutti,
sto seguendo il tutorial di Marco De Sanctis "Introduzione a Entity Framework" http://media.aspitalia.com/screencast/Entity-Framework.media

ho creato un db con SQLExpress "EFDemo3" che ha una tabella ARTICLES con 2 campi:
- id
- Title

Ho creato un nuovo progetto e aggiunto al progetto "ADO.NET Entity Data Model 5"
Aggiunto una WebForm con campo testo e button Salva e inserito il codice all'evento onclick:

protected void Button1_Click(object sender, EventArgs e)
        {
            using (EFDemo3Entities context = new EFDemo3Entities())
            {
                Article article = new Article();
                article.Title = TextBox1.Text;

                context.Articles.Add(article);
                context.SaveChanges();

                Label1.Text = "Salvataggio Completato";
            }
        }


F5.. inserisco i dati nel campo.. salvo e il record viene salvato nella tabella

Problema:
- se provo ad aggiungere un nuovo record mi da errore al context.SaveChanges(); : DbUpdateException...
- l'Id nella tabella del record salvato è 0

potete darmi una mano?
Grazie a tutti
Ric
Modificato da guest99 il 20 gennaio 2015 01.00 -
89 messaggi dal 13 marzo 2010
Ciao,

solitamente questo tipo di errore viene generato quando si tenta di inserire un record che contiene una chiave primaria già esistente.
Nel tuo caso, suppongo che tu abbia una chiave primaria ID, inserisci il primo oggetto (con ID = 0 perché non lo setti) e poi successivamente tenti di inserire un altra entity con ancora ID = 0.
Hai due possibilitá:
- il tuo campo ID diventa un autoincrementale;
- setti da codice gli ID delle varie entity che inserisci;

Ciao
16 messaggi dal 30 maggio 2002
Ciao Federico.. grazie mille

ho impostato sulla tabella la proprietà 'identity' su Sì, e 'incremento' e 'valore di inizializzazione' a 1 per la chiave Id.

ho fatto una prova al volo e l'Id si incrementa.

ho notato che se faccio l'aggiornamento della pagina i dati nella TextBox vengono ri-salvati in un nuovo record.. con calma cerco di capire.

Ti ringrazio ancora
Ric

P.S.: chiedo umilmente perdono per l'orrore di battitura nel titolo del post.. ma postato all'una di notte dopo giornata di lavoro, famiglia, e studio..
...ce po sta' :)

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.