2010-12-28 7 views
0

NHibernateで構成されたマルチデータベースアプリケーションがあります。各データベースのテーブルに対応するエンティティは、それぞれ独自のアセンブリ(必要に応じてデータベースごとのアセンブリ)にあります。私は、あるデータベースのエンティティを別のデータベースのエンティティに関連付ける必要性/希望を持っています。この点までは、私が望むようにすべて動作します(アプリケーションは複数のセッションファクトリなどを処理します)。NHibernateの複数のデータベースからのマッピング関係

私が望む関係は多対1ですが、実際には私のアプリケーションは関係の片側だけを気にしています(関係のない理由による)。関連するエンティティはProjectおよびPMProjectで、プロジェクトにはPMProjectがあります。私はマップすると多対一、私は次のエラーを取得:プロジェクトマッピング自体は読み込み

NHibernate.MappingException: An association from the table PROJECTS refers to an unmapped class: SDMS.PPRM.PMProject 

は(ファンキー列名を無視し、それがOracle DBの):で

<many-to-one name="PMProject" class="SDMS.PPRM.PMProject" column="PM_PROJECT_ID" cascade="none" /> 

を適切なアセンブリを参照していますが、PMProjectのマッピングファイルが見つからないというエラーが表示されます。しかし、そのファイルは存在します(組み込みリソースとして設定されています)。セッションファクトリインスタンス化は確実に機能します。私はどのようにプロジェクトマッピングにどのように/適切なマッピングを探すかを伝える方法を失っています。私は行方不明のものがありますか?これについてもっと良い方法がありますか?

ありがとうございます。

+0

不思議なことに、なぜ複数のデータベースが必要ですか? – yfeldblum

+0

クライアントの要件。彼らは他のアプリケーション/サービスで使用される既存のデータベースを持っています。私たちのアプリケーションには独自のデータベースがあり、一部のビジネスワークフローでは両方の場所からの読み取り/更新が必要です。 – nkirkes

答えて

0

私は "理想的な"シナリオを迂回し、異なるデータベースのエンティティ間に直接的なオブジェクト関係を持たないようにしました。このアプリのために、それはOKです、同じreqを持つ将来のアプリのために、私は適切な解決策を見つけたいと思います。

+0

合理的な解決策がありますか?私は同じ問題を抱えています:異なるデータベース接続からの2つのクラスからの多対1のマッピング。 – Potemkin

0

このエラーにより、PMProjectのマッピングがロードされていないことが明らかになりました。

マッピングが異なるアセンブリに存在する場合、そのアセンブリを構成に追加する必要があります。

+0

NHibernateの新しい人にはおそらく分かりませんが、これは確かに基本的な単体テストの作業をするためでもありました。 – nkirkes

関連する問題