簡體   English   中英

NHibernate LINQ查詢不支持指定的方法錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM