2010-11-14 3 views
0

EDIT: Mieux encore, je le fais sans erreur et aucun enregistrement inséré:Entity Framework 4: Créer une nouvelle entité, l'enregistrer, aucune erreur et aucun enregistrement inséré?

var myTopLevelEntity = _DC.TopLevelEntity.Where(p => p.ID = 1).First(); 
var newEntity = new Entity(); 
newEntity.pocofield = ""; // set all primary keys and poco fields 
newEntity.TopLevelEntity = myTopLevelEntity; 
_DC.Entitys.Add(newEntity); 

J'ai vérifié profileur du serveur SQL. Aucune commande autre qu'un select ne s'est produite pendant ce temps.

(FIN EDIT)

J'ai un ensemble d'entités à ajouter à la fois, tout nouveau. Ils dépendent d'un enregistrement dans une autre table. Je fais ce qui suit:

var myTopLevelEntity = _DC.TopLevelEntity.Where(p => p.ID = 1).First(); 

NewEntity a une hiérarchie:

newEntity.A[].pocofields 
newEntity.B[].pocofields 
newEntity.C[].pocofields 
newEntity.C[].D[].pocofields 

Alors, je fais

var newEntity = new Entity(); 
newEntity.pocofield = ""; // various poco fields, set all keys 

var A = new AEntity(); 
A.pocofield = ""; // various poco fields, set all keys 
newEntity.As.Add(A); 

var B = new BEntity(); 
B.pocofield = ""; // various pocos, set all keys 
newEntity.Bs.Add(B); 

var C = new CEntity(); 
C.pocofield = ""; // various, set all keys 
var D = new DEntity(); 
D.pocofield = ""; // various, set all keys 
C.Ds.Add(D); 
newEntity.Cs.Add(C); 

newEntity.TopLevelEntitys.Add(myTopLevelEntity); 
_DC.Entitys.Add(newEntity); 

À ce stade, l'absence d'erreur (je n'ai pas try/catch nulle part). Aucun enregistrement n'apparaît dans la base de données non plus. Que fais-je incorrect?

Répondre

4

Je pense que vous avez oublié d'appeler _DC.SaveChanges

+0

OMG parler d'une expérience abrutissant lol. –

Questions connexes