Entity Framework - Détache et conserve le graphe d'objet associé

entity-framework

Question

Je viens tout juste de commencer à utiliser Entity Framework plutôt que mon NHiberante habituel pour voir comment fonctionne EF. Jusqu'à présent, j'ai de nombreux problèmes, mais l'un d'entre eux consiste à détacher un objet et à conserver les objets enfants associés.
J'ai acheté le livre O'Reilly Entity Framework qui vous dit: "Oui, le framework d'entité ne conserve pas le graphe d'objet lorsque vous vous détachez", mais il ne montre pas comment conserver le graphe! Merci O'Reilly c'est vraiment utile.

Quoi qu'il en soit, si quelqu'un peut aider, ce serait formidable, 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

Réponse populaire

Essayez plutôt d'utiliser une requête NoTracking. De cette façon, les objets ne sont jamais attachés, vous n'avez donc pas besoin de "détacher", c'est-à-dire lorsque le graphique est déchiqueté:

c'est à dire

using (var creativeWorkshopEntities = new CreativeWorkshopEntities())        
{            
    creativeWorkshopEntities.Job.MergeOption = MergeOption.NoTracking;
    var q = from c in creativeWorkshopEntities.Job.Include("Files")
            where c.Id == jobId                    
            select c;            
    var job = q.First();            
    return job;
} 

J'espère que cela t'aides

Alex

(Équipe de cadre d'entité de gestionnaire de programme)



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow