У меня есть элементы и таблицы групп элементов в моей базе данных:
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?
Я знаю, как это сделать, используя критерии (используя псевдоним).
var criteria = Session.CreateCriteria<Item>()
.CreateAlias("ItemGroup", "group")
.AddOrder(Order.Asc("group.Name"));
Я пытался создать псевдоним ItemGroup и использовать его с QueryOver, но мой результат был отсортирован по имени элемента, а не по имени группы элементов.