すべてのドメイン ロジックとドメイン オブジェクト (例: ) を保持するアセンブリFoo.Barがあります。public class Project
public interface IProjectRepository
また、 NHibernate ベースの実装を保持する NHinbernate データ アクセス レイヤーとして機能するアセンブリFoo.Bar.Dataもあります。IProjectRepository
これはFoo.Barを参照し、 Project.hbm.xmlなどのマッピング ファイルを含みます。
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Foo.Bar"
namespace="Foo.Bar.Domain" default-lazy="false">
<class name="Project">
<id name="Id" column="ID" />
<property name="Customer" column="CUSTOMER" />
</class>
</hibernate-mapping>
残念ながら、このセットアップでは次の例外が発生します。
NHibernate.MappingException : 次の永続化機能がありません: Foo.Bar.Domain.Project
そしてNHibernateのログには次のように書かれています:
WARN NHibernate.Cfg.Configuration (null) - アセンブリにマップされたドキュメントが見つかりません: Foo.Bar、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null
ただし、マッピング ファイルをFoo.Barアセンブリに追加すると、すべて正常に動作します。しかし、ドメイン アセンブリにデータ アクセスや NHinbernate 実装の詳細を含めたくありません。これはベストプラクティスになりがちですよね?この種のセットアップは良い方法ではありませんか?
NHibernate にFoo.Bar.Data * アセンブリ内のマッピング ファイルを検索させるにはどうすればよいですか?