0

に含まれていますEntity Frameworkの - Changetrackerは私がこのようなデータベースを照会 Entity Frameworkの6を使用してC#アプリケーションを持っている多くの項目

public static DB.Core.DBBlob getBlob(DB.Core.DBAspect aspect, int index) 
    { 
     var blobs = aspect.DBBlobs.Where(b => b.Index == index); 
     return blobs.OrderByDescending(b => b.CreationTime).FirstOrDefault(); 
    } 

問題はchangetrackerは2つのエントリ enter image description here

が含まれていることになりました

最初のアイテムはデータベースから照会されたもので、2番目のアイテムはwhereステートメントで除外されたアイテムです(インデックスは== 1のアイテムのみです)。

EF6がデータベースからのエントリとchangetrackerに追加するエントリの両方をロードしているようです。

私はすでに、次の設定を設定してみました:

dbm.Configuration.AutoDetectChangesEnabled = false; 
dbm.Configuration.LazyLoadingEnabled = false; 
dbm.Configuration.ProxyCreationEnabled = false; 

がうまくいけば、誰かが私を助けることができます。

+0

問題はなんですか?あなたはパフォーマンスの問題を恐れていますか?エンティティの値がロードされているか、デバッグやアクセスにエンティティの値がロードされている可能性はありますか? –

+0

問題は、エンティティフレームワークがデータベースからデータをロードし、メモリが増加することです。パフォーマンスも低下します。 – user3107989

+0

あなたはそれについて本当に確信していますか、その前提ですか?あなたが言ったようなものだったなら、それは**大きな**問題になり、テーブルが大きくなるとEFはまったく役に立たないでしょう。 –

答えて

0

解決策が見つかりました。 問題は、Entity Frameworkがすべての「子」要素をロードしていることです。 私が今行うことは、データベースモデルを取ってDbSetに直接クエリを行い、whereステートメントに親アイテムのIDを追加することです。

関連する問題