Subsonic Deeploads:支持吗?

时间:2009-04-21 00:11:47

标签: subsonic deepload

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

同样,我想在构建一个可能密集的对象图或数据存储填充的相关项后运行到数据存储。

如何在SubSonic中执行此操作以及SubSonic中的名称?

2 个答案:

答案 0 :(得分: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),你可以用保罗提到的Active记录来做这个 - 但它会打两个电话。

答案 1 :(得分:1)

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

[Test]
public void SelectOrderDetails()
{
    Order order = new Order(10250);
    OrderDetailCollection details = order.OrderDetails();
    Assert.IsTrue(details.Count == 3);
}