【发布时间】:2013-05-16 10:59:42
【问题描述】:
如果您愿意,请考虑具有OrderLines 集合属性的Order 类的示例。
public class Order
{
public OrderLineCollection OrderLines { get; private set; }
}
现在考虑一个数据访问层,它返回 Order 对象的集合,而没有填充 OrderLines 属性(空集合)。
为了最大程度地减少到服务器的往返行程,系统将所有 Order 对象的 ID 传递给 DAL,DAL 一次性返回每个 Order 的 OrderLine 对象。业务规则层中的代码负责将正确的OrderLine 对象添加到正确的Order 对象中。
public class OrderDAL
{
public IEnumerable<Order> GetOrdersByCustomer(int customerId)
{
...
}
public IEnumerable<OrderLine> GetOrderLines(IEnumerable<int> orderIds)
{
...
}
}
这是做这种事情的一般方式(减少数据库往返)吗?
DAL 是否应负责返回完全填充的 Order 对象?
有更好的方法吗?
不,我不能在这个特定的实例中使用 ORM 工具!
【问题讨论】: