1

サービス(WCF)に存在する次のコードを検討してください。

 using (var context = new ctxEntities())
            {
                var result = context.MyTable.Include("LinkedTable")
                                   .Where(c => c.RepairID == repairID).ToList();
                result.ForEach(e => context.Detach(e));
                return result;
            }

WPF 環境で LinkedTable プロパティにアクセスし、コンテキストをデタッチしたい (または持っている?)。コンテキスト (result.foreach....) を切り離す前に、テーブルのプロパティとして LinkedTable を「見る」ことができます。コンテキストを切り離した後、Table の LinkedTable プロパティは null になります。

この動作を防ぐにはどうすればよいですか?

ポール

4

2 に答える 2

0

これは役に立ちますか

using(var context = new ctxEntities()){
    context.Configuration.ProxyCreationEnabled = false;
    context.Configuration.LazyLoadingEnabled = false;
    //....
于 2013-02-22T09:58:12.010 に答える
0

Detachまた、リレーションシップ マネージャー内のエントリの関連 end をアンロードします。

前もって追跡をオフにして、デタッチする必要をなくすと役立ちます。アタッチ/デタッチのオーバーヘッドがなくなるため、これはとにかく改善です。

using (var context = new ctxEntities())
{
    context.MyTable.MergeOption = MergeOption.NoTracking;
    var result = context.MyTable.Include("LinkedTable")
                       .Where(c => c.RepairID == repairID).ToList();
    return result;
}
于 2013-02-22T09:55:35.027 に答える