Двойное сопоставление ролей коллекции 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»

Что я делаю неправильно ? Разве я не должен сопоставлять внешние ключи? заранее спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос