2010-12-31 7 views
4

新しいマルチテナントWCF RIAアプリケーションを作成しています。私は、テナントごとに個別のSQL Serverスキーマを持つ共有データベースを用意する予定です。私はNHibernateをオブジェクト・ラルタル・マッピングに使用したいと考えています。テナントごとに別々のSQL Serverスキーマを持つマルチテナントNHibernateアプリケーション

マッピングクラスのSQL Serverスキーマの構成は静的であり、テナントごとに1組のマッピングクラスが必要であるため、役立たない。

オブジェクトをテーブルにマッピングするために使用するSQL Serverスキーマを動的に設定することは可能ですか?

+0

各スキーマ/クライアント間にリンクがありますか? – gbn

+0

はい、各クライアント(テナント)には個別のスキーマがあります。 – Branko

答えて

3

クライアントごとに個別のSessionFactoryを作成し、コンフィグレーションのdefault_schemaプロパティをそれに応じて変更する必要があります。

+0

私は、クライアントごとに別々のSessionFactoryを持つアイデアが大好きです。このようにして、各クライアントに個別のユーザー名を使用して、1つのスキーマのオブジェクトにのみアクセス許可を与えることもできます。 – Branko

1

クライアント間にリンクがない場合は、別々のデータベースを持つことが理にかなっています。

少なくとも、クライアントAが「復元してください」と言っても、他のクライアントのデータは破壊されません。

+0

私はあなたに完全に同意します。問題は、多くの小さなクライアントが存在することです。これは、私が管理し、支払うべき小さなデータベースがたくさん残っています(私はSQL Azureを使用する予定です)。 – Branko

+0

ああ、OK。 – gbn

+0

私は1つのデータベースから始めますが、必要に応じてさらに多くのデータベースにクライアントを広めることをサポートします。各データベースには、使用状況に応じて多数のクライアントのデータが格納されます。この設定では、必要な場合に1つのクライアントにのみデータを格納し、余分な金額を支払うことも可能です。 – Branko

関連する問題