gpt4 book ai didi

linq-to-sql - LINQ to SQL 工作外键表行

转载 作者:行者123 更新时间:2023-12-04 06:32:30 26 4
gpt4 key购买 nike

我是 LINQ to SQL 的新手,因此这个问题。

默认情况下,如果我对一行进行查询,LINQ to SQL 是否会获取所有外键行?

例如:

让我们说我有 1->N 关系将 3 个表

分公司-N> 部门-N> 员工
如果我查询品牌行

Branch b = (
from b in brachDataContext.Branches
where b.id = id
select b).ToList();

这是否获取与分支行相关的所有部门以及与这些部门相关的员工?

如果是这样,那不会是一个巨大的对象。每个分公司可能有 10 个部门,每个部门可能有 1000 名员工,我们可能不需要所有的记录。

最佳答案

默认情况下,Linq 2 SQL 使用延迟执行,这意味着如果您枚举该集合,将获取您的部门。

但是,您可以通过设置 context.LoadOptions 来控制是否应将它们包含在初始查询中。像这样的属性(property)

DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<Branch>(b => b.Departments);
context.LoadOptions = dlo;
... query ...

查询 this post有关延迟执行的更多信息。

并且还阅读了 IEnumerable 和 IQerable 之间的区别及其行为。这是了解所有 Linq 提供程序的关键。

作为提醒,我的经验是 Linq 2 Sql 适用于较小的项目和快速开发等。如果您有其他想法,请考虑转向 Entity Framework 或 NHibernate 以获得更完整的功能体验。

关于linq-to-sql - LINQ to SQL 工作外键表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5232837/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com