0

很可能我只是在这个领域缺少正确的白话,但我正在寻找 SubSonic 中的特定功能。在 NetTiers 中,它被称为“DeepLo​​ad”。深度负载运行到数据库并在一次数据库调用中获取许多对象(即获取此 OrderDetail 及其所有 LineItems)。

同样,一旦构建了潜在的密集对象图或由数据存储填充的相关项目,我想运行到数据存储。

我如何在 SubSonic 中执行此操作,在 SubSonic 中它叫什么?

4

2 回答 2

2

您可以在 SubSonic 3.0(尚未发布,但几乎在那里......)中使用 IQueryable 和延迟加载来执行此操作:

var db=new NorthwindDB();
var order=db.Orders.Where(x=>.xID==20).SingleOrDefault();
Assert.Equal(3,order.OrderDetails.Count());

如果您不在 3 上(需要 .net 3.5),您可以使用 Paul 提到的 Active 记录来执行此操作 - 但它会拨打两个电话。

于 2009-04-21T02:21:13.037 回答
1

没有预加载,ActiveRecord 中的 DeepSave 只调用 Save。这是 Northwind Order 类外键方法的示例。

[Test]
public void SelectOrderDetails()
{
    Order order = new Order(10250);
    OrderDetailCollection details = order.OrderDetails();
    Assert.IsTrue(details.Count == 3);
}
于 2009-04-21T02:09:22.020 回答