将休眠实体带到表示层是一种好习惯吗?或者我们是否需要将实体的所有属性映射到一个值对象并且值对象将用于 UI?
请让我知道这两种方法的优缺点。
我们什么时候应该使用什么?
你所说的 DTO 是 ORM 中的实体。它们通常是包含业务逻辑的域模型的一部分,并且大多数时候包含的数据比渲染单个视图所需的数据多。我个人的经验法则
当 DAL 和视图之间没有传输层并且业务逻辑很少时,在视图中使用实体:
当存在传输层和/或视图数据与实体不同或聚合许多不同实体时,将实体映射到 DTO
如果您跨不同的层和模块公开您的实体,您还可以获得更多的性能和 RAM 使用效率。走哪条路完全取决于您,但我从未见过企业甚至中型应用程序将实体暴露在其数据服务项目/层之外。