Вступает в свободный nhibernate - PullRequest
0 голосов
/ 04 мая 2009

Я использую свободный nhibernate.

пример:

у меня есть 3 таблицы, т.е.

КЛИЕНТ CustomerId pk CustomerName

ПРОДУКТ ProductId pk ProductName

Cust_Product cust_prodId pk ProductId fk CustomerId fk

Теперь я хочу показать имя клиента, productnae

Итак, как мне написать класс отображения для того же.

я хочу использовать

session.CreateCriteria (TypeOf ( "имя класса")). Список () как это. как мне это сделать ..?

1 Ответ

0 голосов
/ 04 мая 2009

Если вы ищете полное руководство о том, как это сделать, я рекомендую FNH wiki или одну из многих публикаций в блоге, которые можно найти через Google.

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

В вашем классе Customer вам понадобится коллекция типа:

IList<Product> Products { get; private set; }

И аналогично, на вашем Классе товара:

IList<Customers> Customers { get; private set; }

Вы начинаете карту «многие ко многим» с помощью функции HasManyToMany:

public class CustomerMap : ClassMap<Customer>
{
    public CustomerMap()
    {
        // other mappings

        HasManyToMany<Product>(x => x.Products)
            .WithTableName("Cust_Product")  // Specifies the join table name
            .WithParentKeyColumn("CustomerId") // Specifies the key joining back to this table (defaults to [class]_id, Customer_id in this case)
            .WithChildKeyColumn("ProductId")
            .FetchType.Join(); // Instructs NHibernate to use a join instead of sequential select
    }
}

Затем повторите процесс для другой стороны отношения (свойство Customers в классе Product).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...