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?
OMG parler d'une expérience abrutissant lol. –