私は多層 MVC アプリケーションを開発しており、これまでに行ったことを確認しています。特に、私が戻って、多層/レイヤー (そこにはたくさんの情報がありますが、実際の一貫性や標準はありません) についてかなりの量を読み直したので、今は自分のデータレイヤーに疑問を抱いています.
私はそれを (良い設計に沿って) 間違って実装したのではないかと強く疑っています。これが私がやったことです:
WebUI
- コントローラー、ビュー モデル、ビューが含まれます
BLL
以下を含むサービス クラスが含まれます。
- コレクションなどのメモリ内操作コード
- エンティティへの EF linq などのデータ アクセス コード。
データ
- ドメイン クラスを含む /Models フォルダー
- DbContext クラスを含む /DAL フォルダー
...
一歩下がって再検討すると、これが私が見ているものであり、私が疑問に思っていることです:
BLL では、ここで EF コードが正しくないように見えます。データ層にある必要があります。誰か確認してくれませんか?
私のデータ レイヤー (つまり、データ プロジェクト) には、コンテキスト クラスとドメイン モデルが含まれています。人々がデータ層を a) DAL と b) モデルに分けているのを読んだことがあります。したがって、DAL レイヤーにはコンテキスト クラスとデータ (EF) コードが含まれ、モデル レイヤーにはドメイン モデルのみが含まれると思います。これにより、合計 4 つのレイヤーが作成されます。過剰すぎるか、良いデザインですか?
EF から ViewModel へのマッピングに AutoMapper を使用する場所はありますか? 私は現在、Web レイヤーでマッピングしていますが、BLL の方が適切であると思われます。ドロップダウン リストの SelectListItem など、一部のマッピングは Web レイヤーでのみ実行できます。