Двойное сопоставление ролей коллекции nHibernate - при попытке создать одно - многократное сопоставление
Я изучаю nHibernate, и я пробовал один на много картографирования. Вот две таблицы «Продукт» и «Тип продукта».
namespace NHibernateSample.Models
{
public class Product
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
public virtual string Category { get; set; }
public virtual bool Discontinued { get; set; }
public virtual IList<ProductType> ProductTypes { get; set; }
}
}
Вот мои карты XML
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="NHibernateSample"
namespace="NHibernateSample.Models">
<!-- more mapping info here -->
<class name="Product">
<id name="Id">
<generator class="guid" />
</id>
<property name="Name" />
<property name="Category" />
<property name="Discontinued" />
<bag name="ProductTypes">
<key column="ProductID" />
<one-to-many class="NHibernateSample.Models.ProductType,NHibernateSample" />
</bag>
</class>
</hibernate-mapping>
Тип продукта xml:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="NHibernateSample"
namespace="NHibernateSample.Models">
<!-- more mapping info here -->
<class name="ProductType">
<id name="ProductTypeID">
<generator class="increment"/>
</id>
<property name="ProductType1" column="ProductType"/>
<property name="ProductID" />
<many-to-one name="Product" class="Product">
<column name="ProductID" sql-type="int" not-null="true"/>
</many-to-one>
</class>
</hibernate-mapping>
Отображения в конфиге
mapping assembly="NHibernateSample" />
Когда я пытаюсь настроить и построить фабрику сессий
var cfg = new Configuration();
cfg.Configure();
m_SessionFactory = cfg.BuildSessionFactory();
Я получаю сообщение об ошибке: «Ассоциация ссылается на не сопоставленный класс: NHibernateSample.Models.ProductType», но я вижу файл hbm в папке bin.
Если я добавлю сборку явно,
Assembly thisAssembly = typeof(Product).Assembly;
cfg.AddAssembly(thisAssembly);
Я получаю еще одну ошибку, говоря: «Дублирование сопоставления ролей коллекции NHibernateSample.Models.Product.ProductTypes»
Что я делаю неправильно ? Разве я не должен сопоставлять внешние ключи? заранее спасибо