gpt4 book ai didi

nhibernate - 使用 QueryOver 的相关实体中的 Fluent NHibernate 按属性排序

转载 作者:行者123 更新时间:2023-12-01 23:35:00 26 4
gpt4 key购买 nike

我的数据库中有项目和项目组表:

CREATE TABLE [items](
[item_id] [int] IDENTITY(1,1) NOT NULL,
[item_name] [varchar](50) NOT NULL,
[group_id] [int] NOT NULL
)

CREATE TABLE [itemgroup](
[group_id] [int] IDENTITY(1,1) NOT NULL,
[group_name] [varchar](50) NULL
)

下面是这些实体的映射类:

public class ItemMap : ClassMap<Item>
{
public ItemMap()
{
Table("items");
Id(x => x.Id).Column("item_id");
Map(x => x.Name).Column("item_name");
References(x => x.ItemGroup).Column("group_id").Fetch.Join();
}
}
public class ItemGroupMap : ClassMap<ItemGroup>
{
public ItemGroupMap()
{
Table("itemgroup");
Id(x => x.Id).Column("group_id");
Map(x => x.Name).Column("group_name");
}
}

如何使用 QueryOver 从数据库中获取按组名排序的所有项目?

我知道如何使用 Criteria(使用别名)来完成它。

var criteria = Session.CreateCriteria<Item>()
.CreateAlias("ItemGroup", "group")
.AddOrder(Order.Asc("group.Name"));

我尝试创建 ItemGroup 别名并将其与 QueryOver 一起使用,但我的结果是按项目名称而不是项目组名称排序的。

最佳答案

它看起来像这样:

Item itemAlias = null;
ItemGroup itemGroupAlias = null;

session.QueryOver<Item>(() => itemAlias)
.JoinAlias(() => itemAlias.ItemGroup, () => itemGroupAlias)
.OrderBy(() => itemGroupAlias.Name).Asc;

关于nhibernate - 使用 QueryOver 的相关实体中的 Fluent NHibernate 按属性排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5851324/

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