Entity Framework - 関連オブジェクトグラフを分離して保持する

entity-framework

質問

通常のNHiberanteではなくEntity Frameworkを使用してEFがどのように機能するかを確認したところです。これまでのところ多くの問題がありますが、特にオブジェクトの切り離しと関連する子オブジェクトの保持が重要です。
O'Reilly Entity Frameworkの本を購入しました。「デフォルトでは、エンティティフレームワークはデタッチ時にオブジェクトグラフを保持しません」と書かれていますが、グラフの保持方法は示されていません。ありがとうオライリーは本当に便利です。

とにかく誰かがそれを手助けすることができるならば、以下のコード:

        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;
        }

ありがとうございます。

ダン

人気のある回答

代わりにNoTrackingクエリを使用してみてください。このようにしてオブジェクトはいつでもアタッチされるので、グラフが細かくされるときに 'detach'する必要はありません。

すなわち

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;
} 

お役に立てれば

アレックス

(プログラムマネージャエンティティフレームワークチーム)



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ