2010-12-11 23 views
1

Ich verwende ADO.NET Entity Framework-Datenmodell für mein ASP.NET MVC-Projekt. Ich versuche, in mehrere Tabellen einzufügen und .SaveChanges() -Methode aufgerufen. Es wirft keine Ausnahme und fügt nicht in diese Tabellen ein.SaveChanges funktioniert nicht mit ADO.NET Entity Framework

Was könnte hier falsch sein?

Object1 obj1 = new Object1(); 
obj1.TID = 300; //Auto generated but I am assigning the value. 
obj1.TypeID = 1; 

Object2 obj2 = new Object2(); 

obj2.TID = 300; 
obj2.StartDT = DateTime.Now; 

db.AddToObject1(obj1); 
db.AddToObject2(obj2); 

db.SaveChanges(); 
db.AcceptAllChanges(); 
+0

was ist der Zustand der Einheit .. verwenden ObjectContext.ObjectStateManager – paragy

+0

* Dies sollte * Arbeit - wie Sie mit Ihrer Datenbank verbinden? ? Ist es zufällig eine "Benutzerinstanz" von SQL Server? Können Sie uns bitte Ihre Verbindungszeichenfolge zeigen? –

+0

Ich bin auch unsicher über die '. AcceptAllChanges()' am Ende; '.SaveChanges();' sollte ausreichen. Macht das Auskommentieren dieser Linie einen Unterschied? –

Antwort

0

Haben Sie versuchen, Änderungen für jedes Objekt speichern wie:

db.AddToObject1(obj1); 
db.SaveChanges(); 

db.AddToObject2(obj2); 
db.SaveChanges(); 
+0

Ich habe versucht, aber ich habe diesmal eine Fehlermeldung erhalten. Die zweite Einfügeanweisung ist fehlgeschlagen. Ich habe den Fehler "Fremdbedingung" erhalten. – nav100

+0

Hi, ich denke, wenn der Foreign Constraint-Fehler auftritt, hat er nichts mit dem Entity-Framework zu tun, überprüfe deine Datenbank und poste dein Problem, wenn es immer noch unfixiert bleibt ... Prost !! –

0

bereits. Sie müssen das Objekt in den Kontext hinzuzufügen und dann ihre Eigenschaften ändern:

Object1 obj1 = new Object1(); 
Object2 obj2 = new Object2(); 
db.AddToObject1(obj1); 
db.AddToObject2(obj2); 


obj1.TID = 300; //Auto generated but I am assigning the value. 
obj1.TypeID = 1; 


obj2.TID = 300; 
obj2.StartDT = DateTime.Now; 


db.SaveChanges(); 
Verwandte Themen