私は次のデザインを持っています: 私のデザイン 私のデザインhttp://s15.postimg.org/3zha8rzqh/Design_Idea.png
サービスレイヤー(左側のサービス)に「ProductDTO」というクラスがあります。
「製品の更新(ProductDTO)」操作コントラクトが呼び出されると、ビジネスロジックレイヤーの「製品の更新」関数を呼び出す必要があります。
データベース(「データアクセス層」)には「Product」というエンティティがあり、LINQ-To-Entitiesを使用しているため、「Product」というクラスもあります。
私の質問は-「ProductDTO」から「Product」にどこに翻訳すればよいですか?
サービスレイヤーに「Translate_ProductDTO_To_Product」関数が必要ですか?これは、「ProductDTO」が何であるかを知っている唯一のレイヤーであるため、最も論理的な答えのようです。
ただし、これは、サービス層が「製品」とは何かを認識している必要があるため、データアクセス層アセンブリを参照する必要があることを意味します。
これは正しいです ?
サービス層はビジネスロジック層のみを参照する必要があり、ビジネスロジック層はデータアクセス層のみを参照する必要があり、サービス層はDALについて何も知らないはずだと思いました。