NHibernate映射问题 - 我可以映射多个程序集吗?

时间:2011-01-02 19:01:16

标签: nhibernate orm nhibernate-mapping

我有以下映射文件:

    <?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类与Assembly类不同,它位于不同的程序集中。 Account类所在的项目拥有自己的hibernate.cfg.xml。

基本上,我看起来需要一种方法来引用hibernate.cfg.xml文件中的多个映射程序集。这可能吗?

3 个答案:

答案 0 :(得分:3)

你可以这样做:

<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 :(得分:1)

有可能,您只需在映射文件中指明这一点(看起来就像这样)。

在创建sessionfactory之前,您是否已将两个程序集添加到NHibernate配置中?

答案 2 :(得分:0)

感谢您的回复。实际上,我最终做的有点不同了。我刚刚从hibernate.cfg中删除了标记,并在.hbm.xml文件中使用了完全限定名。谢谢!

相关问题