亚音速深度负载:支持吗?

发布于 2024-07-17 14:58:00 字数 263 浏览 6 评论 0原文

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

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

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

It could very well be that I'm just missing the correct vernacular in this space, but I'm looking for a particular piece of functionality in SubSonic. In NetTiers it was called a "DeepLoad". A deep load runs to the database and fetches many objects (ie. fetch this OrderDetail and all of it's LineItems) in one database call.

Again, I want to run to the data store once an build up a potentially dense object graph or related items populated by the data store.

How do I do this in SubSonic and what is it called in SubSonic?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凹づ凸ル 2024-07-24 14:58:00

您可以在 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 record 来执行此操作,正如 Paul 提到的 -但它会拨打两次电话。

You can do this in SubSonic 3.0 (not yet released, but almost there...) using IQueryable with lazy loading:

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

if you're not on 3 (which requires .net 3.5) you can do this with Active record as Paul mentions - but it will make two calls.

瘫痪情歌 2024-07-24 14:58:00

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

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

There is no eager loading, and DeepSave in ActiveRecord only calls Save.
Here is an example with Northwind Order class foreign key method.

[Test]
public void SelectOrderDetails()
{
    Order order = new Order(10250);
    OrderDetailCollection details = order.OrderDetails();
    Assert.IsTrue(details.Count == 3);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文