LINQ Fluent NHIBERNATE .Contains()在QueryOver <>中不起作用,但在Query <>]中起作用,

问题描述 投票:18回答:3

使用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 <>的方式有什么问题?

[使用FNH,我正尝试使用以下方法检索类别:_session.QueryOver

().Where(c => tourCreateRequest.Categories ....

nhibernate fluent-nhibernate linq-to-nhibernate
3个回答
25
投票
我找到了答案。多亏了NHibernate using QueryOver with WHERE IN

7
投票
这是与切线相关的问题,这似乎是放置它的最佳位置。

-1
投票
像这样:
© www.soinside.com 2019 - 2024. All rights reserved.