3

現在、アプリケーションでSQLServerとEntityFrameworkを使用しています。SQLServerに基づく独自のカスタムメンバーシッププロバイダーがあります。ORMとしてEFを使用しています。

現在、MongoDbも処理できるようにアプリケーションを更新中です。メンバーシッププロバイダーに変更を加えることから始めています。

現在のところ、BLはエンティティモデルのインスタンスを直接作成し、db操作を実行しています。これは良いデザインではないと思います。

DBに基づいてBLが変更されないようにしたい。リポジトリオブジェクトのインスタンスを作成し、リクエストを転送する必要があります(CRUD操作)。リポジトリがDALとの通信を処理します。私が間違っている場合は訂正してください。

BLから使用されるリポジトリとリポジトリによって実装されるインターフェースを作成することを考えています。インターフェイスは次のようになります。

interface IDataRepository
{
   MembershipUser CreateUser(string firstName, stringLastName, string email, string phone); 
}

1)。より良い方法を教えてください。

2)。アプリケーションに異なるリポジトリがある場合、BLが使用するリポジトリをどのように決定するか。これにはファクトリパターンを使用するのがよいでしょうか?

ありがとう、ナレシュ

4

1 に答える 1

0

あなたは正しい方向に進んでいると思います。アプリケーションを層に分割し、リポジトリまたはDALレイヤーを必要なもの(SQL、Webサービスなど)にして、ファクトリまたはDIを使用して必要に応じてデータを取得します。 。

これがそれを行うことについてのDB投稿です

于 2013-03-19T15:05:23.700 に答える