J'essaie de persister dans la collecte d'éléments enfants, la solution fonctionne mais je voudrais demander aux personnes plus expérimentées si l'approche est la bonne?Entity Framework Insérer des entités enfants
public bool InsertNewActionHistory(ActionHistory actionHistory)
{
bool result = false;
using (TransactionScope transactionScope = new TransactionScope())
{
this.ActionHistories.AddObject(actionHistory);
if (actionHistory is ActionUpdate)
{
foreach (ActionUpdateDetail updateDetail in ((ActionUpdate)actionHistory).ActionUpdateDetails)
{
ActionUpdateDetails.AddObject(updateDetail);
}
}
this.CommitChanges();
transactionScope.Complete();
result = true;
}
return result;
}
Bonjour Craig, c'est un scénario POCO, approche DB First. Croyez-le ou non, j'ai réussi à le résoudre sans le code unneseccary. Je n'ai aucune idée d'où était le problème. Au premier essai de l'enfant, c'est-à-dire que les propriétés de navigation ne duraient pas du tout ?! Puis j'ai décidé d'essayer avec la portée de la transaction et j'ai fini avec le code présenté. Une fois que j'ai enlevé, progressivement, tout le code inutile, il a commencé à travailler comme il se doit. La méthode CommitChanges a un seul appel à la méthode SaveChanges du contexte. Il se pourrait que la portée de la transaction, ou autre chose, ait bloqué l'enregistrement des enfants. – bignermo
Je vais essayer de revenir en arrière et de reproduire le comportement ackward et le partagerai si je réussis. En tout cas, merci beaucoup pour votre aide :) – bignermo