nhibernate 查询使用值类型列表的条件

nhibernate query using criteria for list of value type

Class 包含整数列表:ICollection<int> CategoryEnum

如何为此创建查询条件?

我试过了:

List<int> postedCategories = new List<int>{ 1 };
int category = 0;

q.JoinAlias(p => p.CategoryEnum, () => category)
 .AndRestrictionOn(x => category)
   .IsIn(postedCategories);

但我收到 sql 查询 其中 (1) 中的 0

我对对象集合没有问题,它可以工作,但对 int 集合不起作用。

这是我映射的一部分:

<set name="CategoryEnum" table="CategoriesEnum">
  <key column="Id"></key>
  <element column="CategoryId" type="int"></element>
</set>

检查这些问答:

  • NHibernate How do I query against an IList<string> property?

你会发现,我们可以通过关键字".elements"

访问元素
Restrictions.In("category.elements", postedCategories)

查询结束:

q.JoinAlias(p => p.CategoryEnum, () => category)
 .Where(Restrictions.In("category.elements", postedCategories))