NHibernate QueryOver,其中值为IN列表属性/字段

本文关键字:列表 IN 属性 字段 QueryOver NHibernate | 更新日期: 2023-09-27 18:27:18

我有一个非常基本的模型:

public class Blog : UniqueEntity<Guid>
{
    public virtual string Name { get; set; }
    public virtual string Tagline { get; set; }
    public virtual string ActiveThemeName { get; set; }
    public virtual string MainDomain { get; set; }
    public virtual IList<string> DomainAliases { get; set; } = new List<string>();
}

我需要编写一个NHibernate QueryOver查询WHERE "hostname string" IN DomainAliases

我在SO上找到了很多关于如何反向操作的答案,即:`WHERE DomainAliases包含"主机名字符串",但没有一个是我需要的。

NHibernate QueryOver,其中值为IN列表属性/字段

解决方案,如下所述:

NHibernate:选择元素袋中有条目的项目

应该是这样的:

var demos = this.session.CreateCriteria<Blog>()
    .CreateAlias("DomainAliases", "d")
    // .elemnts is what we need
    .Add(Restrictions.Eq("d.elements", "hostname string"))
    .List<Blog>();

同时检查:

NHibernate如何查询IList属性