NHibernate QueryOver的值是IN列表属性/字段?

时间:2015-12-18 17:50:00

标签: c# nhibernate queryover

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

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 CONTAINS“hostname string”但是没有我需要的东西。

1 个答案:

答案 0 :(得分:2)

解决方案,如下所述:

NHibernate: Select item with entry in element bag

应该是这样的:

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?