2010-12-11 7 views
1

J'utilise le modèle de données ADO.NET Entity Framework pour mon projet ASP.NET MVC. J'essaye d'insérer dans plusieurs tables et appelé la méthode de .SaveChanges(). Il ne jette aucune exception et n'insère pas dans ces tables.SaveChanges ne fonctionne pas avec ADO.NET Entity Framework

Qu'est-ce qui pourrait ne pas fonctionner ici?

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

quel est l'état de l'entité .. utilisent ObjectContext.ObjectStateManager – paragy

+0

Ce * devrait * travail - comment vous connectez à votre base de données? ? Est-ce une "instance d'utilisateur" de SQL Server par hasard? Pouvez-vous nous montrer votre chaîne de connexion, s'il vous plaît? –

+0

En outre, je ne suis pas sûr de '.AcceptAllChanges()' à la fin; '.SaveChanges();' devrait être suffisant. Est-ce que commenter cette ligne fait une différence? –

Répondre

0

Avez-vous essayez d'enregistrer les modifications pour chaque objet comme:

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

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

J'ai essayé mais j'ai reçu un message d'erreur cette fois. La deuxième instruction d'insertion a échoué. J'ai reçu une erreur de contrainte étrangère. – nav100

+0

Salut, je pense que si l'erreur Foreign Constraint se produit, cela n'a rien à voir avec le framework d'entité, vérifiez votre base de données et postez votre problème s'il ne l'est pas encore ... Bravo !! –

0

essayer. Vous devez d'abord ajouter l'objet au contexte et modifier leurs propriétés:

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(); 
Questions connexes