【发布时间】:2023-03-23 06:09:01
【问题描述】:
我正在为带有 DI 和 ORM 的 ASP.NET MVC 应用程序开发模型。
最近,我一直在研究在服务层中编写所有业务逻辑与将特定于实体的逻辑放在实体类本身中的优缺点。实体类中声明的方法显然是在实体的特定实例上调用的,因此只能在该实例已从查询实例化到 ORM 时调用。
假设我有一个Product 实体,并在其上声明了一个ApplyDiscount 方法。给定从控制器的操作方法传入的产品的ID,我必须首先使用此ID 查询产品的实例,然后调用ApplyDiscount 方法。但是查询代码应该在哪里发生呢?在我的服务层中声明一个方法是否有效,该方法采用ID,查询Product 实例,然后在该实例上调用ApplyDiscount?或者该代码应该去其他地方吗?
最终,我想知道在尝试避免胖服务层和贫血域时,在服务层中查询代码并在实体类本身中修改结果实体的代码是否是常见/正确的实现型号。
在服务层中有查询代码是否完全违背了目的?
【问题讨论】:
-
如果有人能提供讨论这个问题的参考资料就好了。
标签: c# asp.net-mvc oop design-patterns