2011-01-04 12 views
4

複数のデータベースを持つ1つのSQL Serverがあります。 Database1には、Database2のテーブルに格納されているIDを参照するテーブルがあります。それが可能かどうかは確かですが、NHibernate(Fluent NHibernate特に)を構成して複数のデータベースからデータを取得するオブジェクトを飽和させることはできますか?複数のデータベースに渡ってNHibernateにオブジェクトを埋め込む

私はこれらのテーブルへの書き込みについて心配していません、私はデータ表示アプリケーションに表示するオブジェクトをORMしようとしています。

私はこれが理想的なデータベースの状況ではないことを認識していますが、これは私が仕事をしてくれたものです。

答えて

9

クロスDBクエリのようなdb固有のクエリ構造に対する通常の答えは、クロスDBクエリを実行して結合結果を返す "ローカル" DB(NHが接続する)にビューを作成することです。 DBごとにリポジトリを作成し、各DBからレコードを照会して手動で結合する手段を開発することもできます。

1つのことも動作します。各マッピングのtableプロパティは単なる文字列であり、何でもかまいません。 NHibernateはそれを受け取り、テーブル名を参照する必要がある場合はどこにでも接続します。したがって、完全修飾名(ConnectedDB..LocalTable、OtherDB..RemoteTable)を使用してマッピング内のテーブルを指定できます。それはハックと見なされるかもしれませんが、ある意味ではかなりエレガントです。あなたのプログラムは永続性スキーマに複数のデータベースがあることを知る必要さえありません。

+0

これは魅力的に機能しました!本当にありがとうKeith! –

関連する問題