StackOverflow や他のサイトで、アーキテクチャのベスト プラクティスに関する記事を 1 日中読んでいますが、相反するアイデアや意見が非常に多くあります。
最終的にアプローチに落ち着きましたが、EF オブジェクト (DbContext、Fluent API、シード データなど) を配置する場所を決定するのに非常に苦労しています。これが私が現在持っているものです:
ASP.NET MVC プロジェクト: 実際の Web プロジェクト。標準のビュー、コントローラー、およびビュー モデルが含まれています ( Modelsフォルダー内)。
Domain Model Project : データベース (ドメイン) オブジェクトを定義するすべての POCO クラスが含まれています。現在、EF オブジェクトについて言及または参照していません。
Service Layer Project : 各タイプのドメイン オブジェクト (IProductService、IOrderService など) のサービス オブジェクトが含まれます。各サービスは、DbSets などの EF オブジェクトを参照し、ビジネス ルールを処理します。たとえば、製品の追加、製品の取得、注文への製品の追加などです。
問題は、この構成では、EF クラスはどこに行くのかということです。最初はサービスレイヤーで考えましたが、それは意味がないようです。次に、それらをドメイン モデル レイヤーに配置することを考えましたが、ドメイン モデルを EF (本質的には DAL/リポジトリ) に結び付けます。最後に、EF 専用の別の DAL プロジェクトを作成することを考えましたが、3 ~ 4 個のファイル (DbContext と他のいくつかの小さなファイル) が含まれる可能性が高いことを考えると、非常に無駄に思えます。
誰でもガイダンスを提供できますか?