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 不会在 SQLServer 端执行 GetSessions 方法在每次调用该方法时的查询......我的意思是有时执行了 sql,有时 GetSessions 方法正在运行而不执行SQLServer 端的 sql 查询。它导致 ProcessSession 方法中的一些问题。

EntityFramwork 决定不执行查询的原因是什么,让它每次都运行的方法是什么?

谢谢,阿列克谢

4

0 回答 0