私はエンティティフレームワークを使用することに興味があります - 新しいデータベースでコードを最初に移行し、データとビジネスレイヤーにPOCOコードを複製することに関するいくつかの質問/懸念があります。コードの最初の移行で異なるレイヤーにPOCOコードを複製
アイデアは、私のPOCOエンティティを含むデータアクセスレイヤーに、文字列の長さなどのデータベーススキーマタイプのアイテム、ボックス外で動作しない外部キー関連のアイテム、その他のもので飾られていることです。この層は、スカラー値、エンティティ、集合体、およびIEnumerablesを返すリポジトリとしても機能します。
上記は、リポジトリとのやり取りやビジネスロジックの話などを扱うビジネスレイヤーです。
プレゼンテーションレイヤーが上部にあります。このレイヤーはビジネスレイヤーと通信し、データレイヤーについてはわかりません。すべてが理解できるのはビューモデルです。私はこのレイヤーで、ビューモデルだけを使ってMVCパターンを実装します。
私が実行している問題は、ビューモデルとデータモデルのマッピングをどこで行うべきかと関係しています。プレゼンテーションレイヤーでビューモデルを定義すると、ビジネスレイヤーはそれらが存在することを認識しません。
- ビジネスレイヤでビューモデルを定義する方がよいか、プレゼンテーションレイヤが認識してマッピングを実行できるビジネスレイヤでドメインモデルのセットが必要ですか?
- ドメインモデルの追加セットは、データレイヤーで定義されたモデルの大きな重複ですか?
モデルは、クライアントとビジネス層の両方が参照できる場所に存在する必要があります。そうすることで、それらは2つのレイヤー間のデータコントラクトとして機能します。ビジネスレイヤはDALと対話できますが、合意したデータコントラクトを常にクライアントに返すことができます。これは、モデルがビューとコントローラとは別のプロジェクトにあることを意味します。 – SteveR
私はそれを考えていた - それは私のMVCプロジェクトで空のモデルフォルダを持って変わっているようだが、多分それは私が乗り越える必要があるかもしれない何かです。私は存在していない他のオプションについて知りたいと思っています:) – MavisBeacon
ビジネスロジックはビューモデルを参照する必要がありますか? –