【问题标题】:NHibernate sub-collection using QueryOver使用 QueryOver 的 NHibernate 子集合
【发布时间】:2011-05-10 19:48:48
【问题描述】:

我有简单的课程:

public class Order
{
    public int Id {get;set;}
    public IList<Name> Names{get;set;}
}

public class Name
{
    public int Id {get;set;}
    public int LangId {get;set;}
    public string LocalName {get;set;}
}

问题是如何查询Order 的子集合以获取所有具有某些Order.Names.LocalName 的(类似这样的):

IList<Order> orders = repository.GetByProductLocalName("laptop");

我想使用新的 NH3 功能 QueryOver,而不是使用 Linq(我在 SO 中找到了一些解决方案,但它们都使用 Linq)。

【问题讨论】:

    标签: nhibernate


    【解决方案1】:

    您需要做的就是为 Names 集合声明一个别名变量,然后您可以在 where 子句中使用它...

    String localName = "laptop";
    Name namesAlias = null;
    
    return session.QueryOver<Order>()
        .JoinAlias(x => x.Names, () => namesAlias)
        .Where(() => namesAlias.LocalName == localName)
        .TransformUsing(Transformers.DistinctRootEntity)
        .List<Order>();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-04
      • 1970-01-01
      相关资源
      最近更新 更多