Подтвердить что ты не робот

Свободный Nhibernate от многих до многих карт

У меня есть два класса Order and Items

Мне нужен такой метод

class Order
{
    public virtual IList<Item> GetItems(Order order)
    {
         //get items for that order.
    }
}
class Item
{
    public virtual IList<Order> GetOrders(Item item)
    {
         //get all the orders in which that items is present.
    }
}

Записывается ли это для создания такого метода или вместо этого я должен создать свойство

     public virtual IList<Item> Items { get; set; }

И как мне это сделать, это nhibernate?

4b9b3361

Ответ 1

По-видимому, у вас есть отношение "многие ко многим": заказ может иметь много элементов, и элемент может принадлежать множеству заказов. В реляционной базе данных вам нужно выразить это с помощью отдельной таблицы, которую, как я полагаю, у вас есть, - предположим, что эта таблица называется OrdersItems.

Следуя примеру Store/Product из документации Fluent NHibernate, вы создадите свойство Items в свойствах Order и Orders в Item:

class Order
{
    public virtual IList<Item> Items { get; protected set; }
}

class Item
{
    public virtual IList<Order> Orders { get; protected set; }
}

И отображения:

public class OrderMap : ClassMap<Order>
{
    public OrderMap()
    {
        HasManyToMany(x => x.Items)
           .Cascade.All()
           .Table("OrdersItems");
    }
}

public class ItemMap : ClassMap<Item>
{
    public ItemMap()
    {
        HasManyToMany(x => x.Orders)
           .Cascade.All()
           .Inverse()
           .Table("OrdersItems");
    }
}