2

私はデータを保持するシステムを使用したプロジェクトに取り組んでおり、データ アクセス アプローチを使用してデータを取得し、プレゼンテーション側のコンポーネントにデータを渡すことを考えています。これを N 層アーキテクチャと考えています。ここに私の考えがあります:

プレゼンテーション レイヤー (Web フォームとユーザー コントロール)

   \/

データ アクセス レイヤー (これが私の質問の場所です)

   \/

ビジネス オブジェクト (システム内の各エンティティの C# クラス)

   \/

データベースからデータを取得するための既存の API (MS SQL 駆動型)

私の DAL では、システムから特定の API メカニズムを使用してビジネス オブジェクトを取得し、プレゼンテーション コンポーネントに渡すことができるようにしたいと考えています。私は、さまざまなユーティリティ リポジトリ クラスを作成して「多数の X ビジネス オブジェクトを取得する」というリポジトリ パターンを認識しています。たとえばArticle、 と呼ばれるビジネス オブジェクトがあるArticleRepositoryとしますArticle。これは素晴らしいことですが、私にとっては DAL ではやり過ぎかもしれません。static GetAll()ビジネス オブジェクトにメソッドを追加するなど、別のことをする名前はありますか? だからではなく:

var repo = new ArticleRepository();
IEnumerable<Article> articles = repo.GetAll();

私は次のような簡単なことを考えています:

IEnumerable<Article> articles = Article.GetAll();

クラスArticleは、関連するプロパティとヘルパー メソッドを備えたビジネス オブジェクトですが、メソッドも備えていstatic GetAll()ます。このアプローチに名前はありますか?このスリム化された疑似リポジトリを作成するのは悪い考えですか?

簡単に言えば、システムから取得するための一意のクエリを使用して多くのビジネス オブジェクトを持っているため、これを行うには多くのリポジトリ クラスが必要になるためです。

4

1 に答える 1

0

アーキテクチャの名前はわかりませんが、IMHO DAL は永続性を処理する必要があるため、DB API を直接処理します。

私の経験からすると、いくつかの優れたプラクティスがやり過ぎだと考える言い訳はありません:) EF を使用した汎用リポジトリは実装が非常に簡単で、将来的には笑顔になるでしょう。

于 2012-09-27T22:36:52.263 に答える