Я работаю над моделью для приложения ASP.NET MVC с DI и ORM.
В последнее время я изучал плюсы и минусы написания всей моей бизнес-логики в сервисе.слой против размещения логики, специфичной для объекта, в самом классе объектаМетоды, объявленные в классах сущностей, очевидно, вызываются для конкретного экземпляра сущности и поэтому могут вызываться только тогда, когда этот экземпляр был создан из запроса к ORM.
Допустим, у меня есть сущность Product
и я объявляю ApplyDiscount
метод на нем.Учитывая ID
продукта, переданного из метода действия контроллера, я должен сначала запросить экземпляр продукта, используя этот ID
, а затем вызвать метод ApplyDiscount
.Но где должен выполняться код запроса?Является ли допустимой практикой объявление метода в моем сервисном слое, который принимает ID
, запрашивает экземпляр Product
, а затем вызывает ApplyDiscount
для этого экземпляра?Или этот код должен идти куда-то еще?
В конечном счете, я хотел бы знать, является ли использование запросов к коду на уровне сервисов и наличие кода модификации результирующих сущностей в самих классах сущностей общей / правильной реализацией при попытке избежать толстого сервисного уровняМодель анемичного домена.
Имеет ли код запроса на уровне сервиса полное поражение цели?