おはようございます!EFのメモリ消費
実際に私はEF atmで少し遊んでいます。私はあなたの助けが必要です。
以下のシナリオ:私はそこに多くのデータが入ったテーブルを持っています。私がEFを通してこのテーブルに問い合わせると、すべてのレコードがメモリにロードされます。
例えば、
var counter = default(int);
using (var myEntities = new MyEntities())
{
foreach (var record in myEntities.MySpecialTable)
{
counter++;
}
}
だから、私はMySpecialTableのすべてのレコードを介して実行してcounter
アップを数えます。 私がTaskmanagerを見ているとき、または私のアプリのメモリ消費量を示す何かがあれば、それは私に言う:400Mb。 (データのため)
もう一度テーブルを実行すると、メモリ消費量が倍増します。
すでにGCを呼び出そうとしましたが、動作しません。
なぜ、各実行のレコードはすべてメモリのどこかに格納されます(解放されません)。 どこに保存されますか? EFクエリをDataReaderのように動作させる方法はありますか? EFほどエレガントなORMがありますか?
編集:
いいえ、私はそのような数をやっていないよ...これでちょうどすべての
チャームのように働いた!あなたにすっごくありがとう! –