NHibernate QueryOver 其中值是 IN 列表 property/field?

NHibernate QueryOver where value is IN list property/field?

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

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

我在这里找到了很多关于如何在相反方向上执行此操作的答案,即:`WHERE DomainAliases CONTAINS "hostname string" 但 none 满足我的需要。

解决方案,如下所述:

应该是这样的:

var demos = this.session.CreateCriteria<Blog>()
    .CreateAlias("DomainAliases", "d")

    // .elemnts is what we need
    .Add(Restrictions.Eq("d.elements", "hostname string"))

    .List<Blog>();

同时检查:

NHibernate How do I query against an IList property?