私は、DIとORMを備えたASP.NET MVCアプリケーションのモデルで作業しています。どのようにドメインオブジェクトメソッドを消費する必要がありますか?
最近、私はサービス層にすべてのビジネスロジックを書くことと、エンティティクラス自体のエンティティに固有のロジックを配置するという長所について検討してきました。エンティティクラスで宣言されたメソッドは、エンティティの特定のインスタンスで明示的に呼び出されるため、そのインスタンスがクエリからORMにインスタンス化されたときにのみ呼び出すことができます。
私はProduct
エンティティを持っており、その上にApplyDiscount
メソッドがあると宣言します。コントローラーのアクションメソッドから渡された製品のID
がある場合、まずこのID
を使用して製品のインスタンスを照会してから、ApplyDiscount
メソッドを呼び出す必要があります。しかし、クエリコードはどこで行われるべきですか? ID
を受け取り、Product
インスタンスを照会し、そのインスタンスでApplyDiscount
を呼び出すメソッドを宣言することは有効な方法ですか?または、そのコードは別の場所に移動する必要がありますか?
最終的には、サービス層でコードを照会し、エンティティクラス自体の結果のエンティティの変更コードを持つことが、太いサービス層を避けようとするときの共通の/正しい実装であることを知りたいと思います。&貧血ドメインモデル。
サービスレイヤでクエリコードを使用すると目的が完全に無効になりますか?
誰かがこの問題について説明している参考文献を提供できればいいと思います。 – NoChance