J'ai une configuration de projet de structure d'entité. Il y a quatre tables et trois entités ("A", "B", & "C"). Il y a une relation 1: n entre A et B et entre A et C, et un: n relation entre B et C.Comment ajouter des relations enfants lors de la création d'un nouvel objet dans Entity Framework
J'utilise le code suivant pour essayer d'ajouter un nouveau « B "entité:
A t = null;
if (this.MyA == null)
{
t = new A()
{
EntityKey = this.MyAReference.EntityKey,
AId = (Guid)this.MyAReference.EntityKey.EntityKeyValues[0].Value
};
}
else
{
t = this.MyA;
}
this.MyA = null;
context.Attach(t);
this.MyA = t;
L'objet" B "(" this ") possède une collection enfant d'objets" C ". Ces objets "C" existent déjà dans la base de données, mais ne sont pas liés au nouvel objet (évidemment). Quand j'appelle "SaveChanges()", il lance une exception car il essaie d'ajouter à tous les objets "C" enfant un nouvel objet dans la base de données.
Comment puis-je l'obtenir pour créer simplement la référence dans le "Table_JoinBC", et ne pas essayer de recréer les objets "C"?
Merci pour toute aide.
Un conseil utile, mais cela ne semble pas résoudre le problème. J'ai essayé plusieurs configurations différentes sans aucune chance. – Sako73
@ Sako73 ... Je viens de mettre à jour ma réponse avec un exemple sur comment ajouter un nouvel objet B en utilisant les entités STUB –
Quelle serait la solution la plus courte et la plus propre pour faire la même chose si vous n'êtes pas sûr que A est dans la base de données? Dans certains cas, il devrait également être inséré? – watbywbarif