Если вы ищете полное руководство о том, как это сделать, я рекомендую 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).