EF4 / VS2010 - Insert schlägt fehl

30/03/2010 - 17:31 von Holger | Report spam
Hallo NG,

ich habe mal versucht mit dem neuen EntityFramework zu spielen. Ich
habe zwei Klassen: Lieferschein und Positionen (1:n). Der Lieferschein
kennt nur eine Id (als Guid) und eine ReferenzNummer (ein string). Die
Positionen lasse ich erstmal aussen vor. Ich habe das EDMX mit einer
DB verknüpft und habe für die Quellcode-Generierung den POCO-Generator
verwendet. Ich habe einen Datensatz manuell in die DB geschrieben und
mir das Ergebnis auf einem DataGrid anzeigen lassen. Bei Click auf
einen Button möchte ich jetzt einfach einen nackten Lieferschein
anlegen.
Das ist der Code

<snip>

Model1Container container = null;
public Form1()
{
InitializeComponent();
container = new Model1Container();
this.dataGridView1.DataSource = container.Lieferscheine;
}

private void button1_Click(object sender, EventArgs e)
{
Lieferschein ls = new Lieferschein();
ls.Id = Guid.NewGuid();
ls.ReferenceNumber="4711";
this.container.Lieferscheine.AddObject( ls);
this.container.SaveChanges();
}

</snip>

Der eine Satz aus der DB wird korrekt angezeigt. Beim click auf den
Button erhalte ich aber immer eine Exception, dass die Id in der DB
nicht mit NULL gefüllt werden darf. Aber ich fülle diese doch mit
Guid.NewGuid() ??

Statt
Lieferschein ls = new Lieferschein();
habe ich auch
Lieferschein ls = context.CreateObject<Lieferschein<();

Gleiches Ergebnis. Kann mir jemand weterhelfen?

Vielen Dank!

Holger
 

Lesen sie die antworten

#1 Holger
31/03/2010 - 10:08 | Warnen spam
Ich bin selbst einen (kleinen) Schritt weiter: Verwende ich einen
Int32, dann klappt es. Es hàngt also mit den Typ Guid zusammen.
Aber langfristig will ich Guids...

Ähnliche fragen