私は、私たちがクライアントとして得ることができる各社のためにデータベースを利用すると書かなければならないアプリがあります。LINQとASP.NET MVCを使用して、ユーザーが関連付けられているデータベースをどのように保持しますか?
残念ながら、このアプリケーションでは、必要なすべての基本情報(たとえ列名が異なる/異なるテーブルであっても)は同じですが、すべての企業データベースのスキーマは同じではありません。私はこのインタフェースを実装する各データベース用のDALのクラスを記述しますなど
を
List<User> getUsers();
List<Account> getAccounts();
void UpdateAccount(Account account);
:複数のデータベースを扱うための
私のソリューションは次のようIRepositoryインターフェースを作成することです。このクラスは、それ自身のデータベースに適切なLINQのDataContextのを使用します。
ここでは、ローズ、HomeDepot、およびFrankLumber用のフォルダを見ることができます。それぞれにIRepositoryを実装するDALクラスがあります。
私の質問は、ファクトリメソッドのインスタンス化をどこで処理すればよいのでしょうか。ログインするユーザーごとに新しいDALクラスインスタンスを保持することができます。
したがって、ログインしている顧客がRepositoryFactoryを呼び出して適切なDALを返すと、上記のメソッドを実装することがわかっているので、多態的にメソッドを呼び出すことができます。
私はASP.NET MVCとMembershipProvidersに新たなんだと、彼らは、ログインした後、私は、ユーザーごとにDALのインスタンスを永続化する方法についていくつかのヒントを使用することができます。