Subsonic 亚音速深荷载:是否支持?

Subsonic 亚音速深荷载:是否支持?,subsonic,deepload,Subsonic,Deepload,这很可能是因为我在这一领域缺少了正确的方言,但我正在寻找亚音速的一种特殊功能。在NetTiers中,它被称为“深水船”。深度加载运行到数据库,并在一次数据库调用中获取许多对象(即获取此OrderDetail及其所有LineItems) 同样,我想在构建一个潜在的密集对象图或由数据存储填充的相关项后运行到数据存储 如何在亚音速下执行此操作?在亚音速下它叫什么?没有即时加载,而ActiveRecord中的DeepSave只调用Save。 下面是Northwind Order类外键方法的示例 [Tes

这很可能是因为我在这一领域缺少了正确的方言,但我正在寻找亚音速的一种特殊功能。在NetTiers中,它被称为“深水船”。深度加载运行到数据库,并在一次数据库调用中获取许多对象(即获取此OrderDetail及其所有LineItems)

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


如何在亚音速下执行此操作?在亚音速下它叫什么?

没有即时加载,而ActiveRecord中的DeepSave只调用Save。 下面是Northwind Order类外键方法的示例

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

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

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

您可以在亚音速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 record执行此操作,但它将发出两个调用。

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

var db=new NorthwindDB();
var order=db.Orders.Where(x=>.xID==20).SingleOrDefault();
Assert.Equal(3,order.OrderDetails.Count());
如果你不在3(需要.NET3.5)上,你可以像Paul提到的那样用Active record来做这件事,但它会打两个电话