我是LINQ to SQL的新手,因此这个问题。LINQ to SQL工作外键表行
默认情况下,如果我为一行查询,LINQ to SQL是否获取所有foriegn关键行?
如:
让我们说我有1> N的关系将3台
分公司-N>部门-N>员工 如果我查询一个品牌排
Branch b = (
from b in brachDataContext.Branches
where b.id = id
select b).ToList();
这是否会提取与分支行相关的所有部门以及与这些部门相关的员工?
如果是这样,那将是一个巨大的对象。每个分支可能有10个部门,每个部门可能有1000个员工,我们可能不需要所有的记录。
他们没有加载的默认行为 – Pleun 2011-03-08 13:26:11
所以在默认行为中,如果linq2sql只在我访问分支对象中的部门时(例如使用foreach)在数据库中执行查询,我是对的吗?同样,如果我使用foreach语句(branch.Departments中的部门d),这些相关部门行是在单个数据库调用中获取的吗? – maX 2011-03-08 13:27:39
这取决于你做什么,但它经常发生,你会得到很多电话到数据库。在这些情况下,我建议使用分析器来查看生成的SQL。但是,如果您知道您将需要它们,最好使用LoadOptions – Pleun 2011-03-08 13:33:46