Проблема сопоставления NHibernate - Могу ли я отобразить несколько сборок? - PullRequest
0 голосов
/ 02 января 2011

У меня есть следующий файл сопоставления:

    <?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Project1.Accounts"
namespace="Project1.Core.Domain">
    <class name="Equipment" table="Equipment">
        <id name="ID" column="ID">
            <generator class="identity"></generator>
        </id>
        <property name="Name" />
        <property name="Description" />
        <property name="AccountID" />
        <property name="EquipmentTypeID" />
        <many-to-one name="Account" class="Project2.Core.Domain.Account, Project2.Core" column="AccountID"/>
        <many-to-one name="EquipmentType" class="Insight.IT.Accounts.Core.Domain.EquipmentType, Insight.IT.Accounts" column="EquipmentTypeID"/>
    </class>

</hibernate-mapping>

Я получаю следующую ошибку:

NHibernate.MappingException: Ассоциация из таблицы Equipment ссылается на не сопоставленный класс: Project2.Domain.Account

Просто чтобы прояснить: класс Account находится в другой сборке, чем класс Equipment.Проект, в котором находится класс Account, имеет собственный файл hibernate.cfg.xml.

По сути, мне кажется, что мне нужен способ ссылки на несколько сборок сопоставления в файле hibernate.cfg.xml.Это возможно ??

Ответы [ 3 ]

3 голосов
/ 02 января 2011

Вы можете сделать это так:

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
        <property name="dialect">...</property>
        <property name="connection.driver_class">...</property>
        ...
        <mapping assembly="MyProject.OtherAssembly"/>
    </session-factory>
</hibernate-configuration>
1 голос
/ 02 января 2011

Возможно, вам просто нужно будет указать это в файле сопоставления (и похоже, что вы это сделали).

Вы добавили обе сборки в конфигурацию NHibernate перед созданием фабрики сеанса

0 голосов
/ 03 января 2011

Спасибо за ответы. На самом деле, я сделал это немного по-другому. Я просто удалил тег из hibernate.cfg и использовал полностью определенные имена в файлах .hbm.xml. Спасибо !!

...