2012-10-12 53 views
1

我是NHibernate的新手,在探索它時遇到了以下查詢問題,它給了我一個「不支持指定的方法」。錯誤,爲什麼?NHibernate的LINQ查詢不支持指定的方法錯誤

var merchantSite = session.Query<MerchantSite>().FirstOrDefault(x => x.Site.Id == SiteId); 
var customers = session.Query<Customer>().Where(x => x.Transaction.Any<Transaction>(y => merchantSite.Transaction.Any<Transaction>(c => c.Id == y.Id))).ToList(); 

MerchantSite和Transaction都有一個Transaction類型的對象列表。

一定有人在那裏一直處於類似的情況,請與我們分享您的經驗,我們應該在這種情況下做什麼?

在此先感謝!

回答

0

當您執行ToList調用時,那是nHibernate構建運行查詢所需的SQL時,它基本上說它在將它轉換爲單個SQL調用時遇到問題。

+6

所以,我該怎麼辦? –

0

如果x.Site爲空,那麼你會得到「不支持特定方法」。你可以嘗試寫

FirstOrDefault(x => x.Site != null && x.Site.Id == SiteId); 

,或者使用C#6

FirstOrDefault(x => x.Site?.Id == SiteId); 
相關問題