[英]NHibernate LINQ query Specified method is not supported error
我是NHibernate的新手,在探索它時,我遇到了以下查詢,該查詢使我“不支持指定的方法”。 錯誤,有什么想法嗎?
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類型的對象列表。
必須有一個處於類似情況的人,請與我們分享您的經驗,在這種情況下我們應該怎么做?
提前致謝!
當您執行ToList調用時,nHibernate正在構建運行查詢所需的SQL,並且基本上是在將其轉換為單個SQL調用時遇到麻煩。
如果x.Site為null,則您將獲得“不支持特定方法”。 你可以嘗試寫
FirstOrDefault(x => x.Site != null && x.Site.Id == SiteId);
或使用C#6
FirstOrDefault(x => x.Site?.Id == SiteId);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.