【发布时间】:2013-03-29 13:43:01
【问题描述】:
使用 FNH,我正在尝试使用以下方法检索类别:
_session.QueryOver<Data.Model.Category>()
.Where(c => tourCreateRequest.Categories.Contains(c.CategoryId))
.List()
.Select(_categoryMapper.CreateCategory)
.ToList();
但我在 .Contains() 方法中遇到错误:
无法识别的方法调用: System.Collections.Generic.ICollection`1[[System.Int64,mscorlib, 版本=4.0.0.0,文化=中性, PublicKeyToken=b77a5c561934e089]]:布尔包含(Int64)
为什么我会收到这个错误,有什么问题?
我浏览了一些帖子,然后将我的查询更改为(如下),这适用于 Query。
_session.Query<Data.Model.Category>()
.Where(c => tourCreateRequest.Categories.Contains(c.CategoryId))
.ToList()
.Select(_categoryMapper.CreateCategory)
.ToList();
我认为 QueryOver 是最新最好的,应该用来代替 Query。
如上所示,我使用 QueryOver 的方式有什么问题?
【问题讨论】:
-
我认为您需要先阅读此内容stackoverflow.com/questions/5328565/…
-
感谢您的链接。但是,如何使用 .Contains() 使用 QueryOver 执行相同的操作?
-
我更喜欢这个解决方案:stackoverflow.com/questions/4739129/…
-
@JacobBrewer,该解决方案不起作用,因为它只检查单个 childId。需要一个 IN 子句。
标签: nhibernate fluent-nhibernate linq-to-nhibernate