2011-01-02 11 views
0

私は次のマッピングファイルを持っている:私は次のエラーを取得していますNHibernateマッピングの問題 - 複数のアセンブリをマップできますか?

<?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:テーブルの機器からの関連付けがマップされていないクラスを参照する:Project2.Domain.Account

明白である - Accountクラスは、Equipmentクラスとは異なるアセンブリ内に存在します。 Accountクラスが存在するプロジェクトは、それ自身のhibernate.cfg.xmlです。

基本的には、hibernate.cfg.xmlファイルで複数のマッピングアセンブリを参照する方法が必要なようです。これは可能ですか?

答えて

0

応答をありがとう。実際、少し違ったことに終わった。私はhibernate.cfgからタグを削除し、.hbm.xmlファイルで完全修飾名を使用しました。ありがとう!!

1

マッピングファイルにこれを示す必要があります(そのように見えます)。

セッションファクトリーを作成する前に、両方のアセンブリをNHibernate構成に追加しましたか?

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> 
+0

うん、これでやるよ。複数の ''タグを持つことができるので、1つのアセンブリにする必要はありません。 – ChrisAnnODell

関連する問題