Je viens de commencer à utiliser Entity Framework plutôt que mon NHiberante normal pour voir comment fonctionne EF et jusqu'à présent j'ai beaucoup de problèmes, mais un en particulier détache un objet et le maintient les objets enfants associés.
J'ai acheté le livre O'Reilly Entity Framework qui vous dit: "yes framework par défaut ne conserve pas le graphique de l'objet lorsque vous le détachez" mais il ne montre pas comment vous pouvez conserver le graphique! Merci O'Reilly c'est vraiment utile.Entity Framework - Détacher et conserver le graphique de l'objet associé
Quoi qu'il en soit, si quelqu'un peut aider ce serait super, le code ci-dessous:
using (var creativeWorkshopEntities = new CreativeWorkshopEntities())
{
var q = from c in creativeWorkshopEntities.Job.Include("Files")
where c.Id == jobId
select c;
var job = q.First();
creativeWorkshopEntities.Detach(job);
return job;
}
Merci!
Dan
C'est grand merci Alex MergeOption fait l'affaire pour, mais le problème est sans détacher mon méthode de mise à jour ne fonctionne pas, de toute façon autour de cela? en utilisant (var creativeWorkshopEntities = new CreativeWorkshopEntities()) { if (job.Id> 0) creativeWorkshopEntities.AttachUpdated (emploi); // Méthode d'extenseur personnalisée else creativeWorkshopEntities.AddToJob (job); creativeWorkshopEntities.SaveChanges(); } –
Vous devez utiliser ApplyPropertyChanges (...) en passant dans l'entité mise à jour. ApplyPropertyChanges (mis à jour) copie les valeurs de l'entité 'updated' sur l'entité d'origine. Pour que cela fonctionne, l'entité 'originale' doit être dans le contexte, soit parce que vous avez conservé une copie et l'avez attachée (recommandé), soit parce que vous avez fait une requête pour la recharger à partir de la base de données. –
Y a-t-il un moyen d'empêcher le graphe d'entité d'être déchiqueté? Pourquoi le détachement est-il mis en œuvre de cette manière? – Den