4

シンプルな ASP.NET MVC + OpenID + NHibernateアプリ (MSSQL Server DB 上) があります。アプリは厳密にシングル テナントであり、2 つのロール ( AdminUser ) のみで複数のユーザーをサポートします。

このアプリをマルチテナント アプリに変換したいと考えています。私の要件は限られています: Accountの概念を導入する必要があるだけです。各アカウントには独自のユーザー セットがあり、元の非マルチテナント アプリとまったく同じように動作します。アカウント間のやり取りはありません。

この移行を最も簡単な方法で行うためのベスト プラクティスは何ですか? 特に、 Account_idフィールドを使用してすべてのエンティティとリポジトリを手動で更新し、ロジックもアップロードできます。しかし、この側面を何らかの形で抽象化するよりスマートなアプローチがないかどうか疑問に思っています。

Ps: アプリは非常に軽いので、アカウントごとに新しい DB インスタンスを導入したくありません。

4

1 に答える 1

3

おそらく私が考えることができる最も良いことは、NHibernateのフィルター機能を採用することです。実行中のクエリでフィルタを簡単に有効にすることができ、オプションで、マルチテナントに設定されているテーブルでフィルタを有効にすることができます。

于 2009-11-08T22:28:02.620 に答える