私は次のコードを持っています:
Guid[] sessions;
while ((sessions = GetSessions()).Any())
{
sessions.AsParallel().ForAll(ProcessSession);
}
...
private Guid[] GetSessions()
{
using (var tmpContext = new MyDbContext())
{
return (from pendingSession in tmpContext.PendingSessions
where !tmpContext.PendingFiles.Any(pf => pf.PendingSession.SessionId == pendingSession.SessionId)
select pendingSession.SessionId).ToArray()
}
}
SQLServer Profiler で実行されているコードをトレースしたところ、EntityFramework がメソッドの呼び出しごとに GetSessions メソッドからのクエリを SQLServer 側で実行しないことがわかりました。 SQLServer 側の sql クエリの。ProcessSession メソッドでいくつかの問題が発生します。
EntityFramwork がクエリを実行しないことを決定する理由は何ですか? また、クエリを毎回実行する方法は何ですか?
ありがとう、アレクセイ