【发布时间】:2010-08-25 14:49:38
【问题描述】:
这是我正在尝试的:
IQueryable query = this.MyRepository.GetShippingCollection();
IList<SomeListType> myList = query.Where(x => x.Settings
.Where(y => y.SelectorID.Equals(5))
.Count() > 0)
.OrderBy(x => x.Order)
.ToList();
产生此错误: 无法解析属性:Settings.ID
如果我这样做,它可以工作,但会在我的 SQL Server 上导致超过 3,000 个查询:
IList<SomeListType> myList = this.MyRepository.GetShippingCollection().ToList();
myList = myList.Where(x => x.Settings
.Where(y => y.SelectorID.Equals(5))
.Count() > 0)
.OrderBy(x => x.Order)
.ToList();
我知道解决方案在于使用“加入”。
过去几个小时我一直在查看示例,但只能在 Mapping 文件中找到 Join 示例。我也在寻找“ICriteria”的例子。
我不想为映射文件中的所有复杂查询创建单独的条目,因此该文件中的联接将不起作用。
因为我使用的是 Fluent NHibernate,所以我没有使用“ICriteria”。我正在使用“IQueryable”。如何在“IQueryable”中连接多个表?
对此的任何帮助将不胜感激。 提前致谢。
【问题讨论】:
-
nhibernate linq 提供程序可能还不支持此功能(不确定)。我可能会改用一个标准。
标签: nhibernate