gpt4 book ai didi

使用 QueryOver 的 NHibernate 子集合

转载 作者:行者123 更新时间:2023-12-03 09:40:11 25 4
gpt4 key购买 nike

我有简单的类:

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)。

最佳答案

您需要做的就是为 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>();

关于使用 QueryOver 的 NHibernate 子集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5955619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com