2010-08-21 2 views
2

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

 mapping.HasManyToMany<oProduct>(x => x.Accessories) 
      .Table("Product_Accessory") 
      .Cascade.SaveUpdate() 
      .ParentKeyColumn("ProductId") 
      .ChildKeyColumn("AccessoryId") 
      .AsBag(); 

     mapping.HasManyToMany<oProduct>(x => x.Consumers) 
      .Table("Product_Accessory") 
      .Cascade.SaveUpdate() 
      .ParentKeyColumn("AccessoryId") 
      .ChildKeyColumn("ProductId") 
      .AsBag(); 

Все это кажется очень логичным, но NHibernate дает мне ошибку Found общих ссылок на коллекцию, потому что есть два списка продуктов.

Этот шаблон можно использовать nHibernate? Каков наилучший способ достичь этого?

Благодаря

Phil

+0

Есть ли какая-то причина, по которой вы * нуждаетесь * использовать одну и ту же таблицу соединений для обеих коллекций? Моя первая мысль заключалась бы в использовании двух отдельных. – DanP

+0

Ну, вы могли бы использовать 2 соединения, но весь смысл таблицы - создать одну запись для аксессуаров и потребителей –

ответ

3

Я решил эту проблему, я имел общую функцию, которая садилась все коллекции продуктов и создавая циклическую ссылку.