【问题标题】:NHibernate QueryOver where value is IN list property/field?NHibernate QueryOver 哪里的值是 IN 列表属性/字段?
【发布时间】:2015-12-18 17:50:00
【问题描述】:

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

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" but none for what I need.

【问题讨论】:

    标签: c# nhibernate queryover


    【解决方案1】:

    解决方案,如下所述:

    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?

    【讨论】:

    • 这不是 QueryOver 查询,但它确实有效。不过,我尽量远离标准 API,因为我喜欢太多的魔术字符串和拼写错误的机会。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 2023-01-23
    相关资源
    最近更新 更多