1

我是 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 类型的对象列表。

肯定有人遇到过类似的情况,请分享一下您的经验,遇到这种情况我们该怎么办?

提前致谢!

4

2 回答 2

0

当您执行 ToList 调用时,nHibernate 正在构建运行查询所需的 SQL,它基本上是在将其转换为单个 SQL 调用时遇到问题。

于 2012-10-12T17:08:19.203 回答
0

如果 x.Site 为空,那么您会得到“不支持特定方法”。你可以试试写

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

或使用 C# 6

FirstOrDefault(x => x.Site?.Id == SiteId);
于 2016-03-18T07:11:49.740 回答