【发布时间】:2015-06-28 08:18:14
【问题描述】:
我从博客文章中阅读了 Greg Young 的文章。我看到 Query 正在从数据库中获取数据。我们使用查询 DTO 对象来填充 UI 屏幕。并建议使用包含普通 SQL 查询的薄层。不建议使用 ORM 工具,例如 Nhibernate 或 EF。因为他们使用延迟加载,所以在数据库上运行多个查询。
例如,我有一个 Order 屏幕。那应该是显示Order信息和Order line items。
public class OrderDto{
public string Name {get; set;}
public string Date {get; set;}
public IEnumerable<OrderLineItem> {get; set;}
}
要创建 OrderDto 实例,我应该向 Orders 表发送查询,然后向 OrderLines 表发送查询。我认为 ORM 工具会做同样的事情。那么为什么要使用纯 SQL 和新的 Thin Layer?
【问题讨论】:
-
我认为一次往返就足以获得订单和订单线。
标签: nhibernate domain-driven-design cqrs