1

私は次のコードを持っています:

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 がクエリを実行しないことを決定する理由は何ですか? また、クエリを毎回実行する方法は何ですか?

ありがとう、アレクセイ

4

0 に答える 0