2

古典的な 3 層アーキテクチャ アプリケーションがあります。今、私たちは小さな問題に直面していますが、それを処理する最善の方法がわかりません。

最後の層 (データベース層) には、データベースからのデータで満たされる POCO クラスがあります。最上層には、MVC3 asp.net Web アプリケーションがあります。MVC アプリケーションは、POCO クラスを読み取ることができれば、最適に機能します。

しかし、GUI 層はデータベース層に直接アクセスできないため、まったく同じクラスを取得することはできません。

最後の層から最上層まで POCO クラスを取得する最良の方法は何ですか?

4

2 に答える 2

2

実際の問題は、データ層でエンティティを定義してはならないということです。データ レイヤーは、アプリ内の他のレイヤーと同様に、ある日完全に書き換えられる可能性があり、エンティティ自体をこれらのレイヤーのいずれにも結び付けたくない場合があります。

つまり、別のプロジェクトでエンティティを定義し、それを他のすべてのプロジェクトから参照します。

- Entities

- Data access layer
  + references Entities

- Business layer
  + references DAL
  + references Entities

- Presentation layer
  + references BL
  + references Entities

リポジトリ インターフェイスについても同じことが言えます。データ アクセスを抽象化するためにリポジトリ パターンを使用している場合、Entitiesプロジェクトは、特定の DAL の選択によって実装できるすべてのリポジトリ インターフェイスを含む必要があるプロジェクトです。

于 2012-06-27T07:56:44.817 に答える
1

すべての異なるレイヤー プロジェクトから参照される DTO のプロジェクトを作成できます。このようにして、アプリケーションのすべてのレイヤー間で DTO POCO を共有できます。

于 2012-06-27T07:48:03.170 に答える