基本的に、Entity Framework を使用して巨大なデータベースにクエリを実行します。文字列リストを返し、それをテキスト ファイルに記録したいと考えています。
List<string> logFilePathFileName = new List<string>();
var query = from c in DBContext.MyTable where condition = something select c;
foreach (var result in query)
{
filePath = result.FilePath;
fileName = result.FileName;
string temp = filePath + "." + fileName;
logFilePathFileName.Add(temp);
if(logFilePathFileName.Count %1000 ==0)
Console.WriteLine(temp+"."+logFilePathFileName.Count);
}
ただし、例外が発生しましたlogFilePathFileName.Count=397000
。例外は次のとおりです。
タイプ 'System.OutOfMemoryException' の例外がスローされました。
タイプ 'System.OutOfMemoryException' の初回例外が System.Data.Entity.dll で発生しました
アップデート:
別のクエリを使用して言いたいこと: トップ 1000 を選択してからリストに追加しますが、1000 以降はわかりません。