2013-03-05 72 views
0

我正在查詢有3條記錄的表(Jobs)。該表具有JobTypes的外鍵和名爲Users的表。在運行以下查詢時,我得到三條記錄,但我只能延遲加載第一個返回的結果。Simple.Data惰性參考Null

IEnumerable<dynamic> jobs = _db.Jobs.All() 
      .Where(_db.Jobs.Completed == false) 
      .Where(_db.Jobs.RunAfter <= DateTime.Now); 

Console.Out.WriteLine("Jobs Found: {0}", jobs.ToList().Count); 

foreach(var job in jobs.ToList()) 
{ 
    Console.Out.WriteLine("{0} from {1}", job.JobType.Name, job.User.Username); 
} 

的輸出是:

Jobs Found: 3 
Some Job by admin 

和錯誤信息是: 無法執行運行時上一個空引用

在錯誤的時間結合,使用快速監視job.JobType和job.User都是null,但job.JobType_Id和job.User_Id屬性都具有有效的guid作爲值。

該錯誤發生在foreach循環的第二次迭代中。所有作業當前具有相同的用戶標識,但具有不同的作業類型標識。我已經驗證了每個表中的ID都是正確的。在延遲加載期間什麼可能導致此錯誤的任何想法?

+0

您正在使用哪個Simple.Data提供程序? SQL Server?甲骨文? etc – Hmobius 2013-03-06 09:31:14

+0

我正在使用SQL Server提供程序。 – RyanBrady 2013-03-06 12:34:57

回答

0

您是否嘗試在您的配置文件中添加MultipleActiveResultSets = true

+0

是的。儘管在MVC視圖中引用延遲加載的屬性時,我不必這麼做。這個問題只發生在我用這個控制檯應用程序。 – RyanBrady 2013-03-05 15:06:48