2011-07-01 101 views
0

我有以下NHibernate的LINQ查詢,它拋出一個空引用異常.Fetch()爲什麼會拋出一個空引用異常?

promotions = (from a in session.Query<Application>() 
          from ap in a.Promotions 
          where a.Id == applicationId 
          && ap.EndDate >= DateTime.Now && ap.StartDate <= DateTime.Now 
          select ap).Fetch(ap => ap.LandingPage).ToList(); 

同樣的查詢,而不.Fetch()工作正常。我兩次都傳遞相同的ID,所以這不是數據問題。

這是一個錯誤,或通過設計?我怎樣才能使它不會拋出異常?

回答

0

如果在聲明後立即將.Fetch(ap => ap.LandingPage)移動到更改結果的位置?

from ap in a.Promotions.Fetch(ap => ap.LandingPage) 
+0

促銷的類型的ICollection和獲取IQueryable的是一個擴展方法,因此它不會編譯 –

0
from a in session.Query<Application>().Fetch(ap => ap.LandingPage) 
//the rest of your code 
+0

你一定要明白,他是從不同類型的子表中選擇項目,對不對?在這種情況下,你的參數ap不會*有一個名爲「LandingPage」的孩子,因爲它在ap.Promotions上。 –

相關問題