如何进行急切加载?

时间:2017-04-23 13:19:51

标签: sql-server vb.net entity-framework linq-to-entities eager-loading

如何在1个主键表和2个外键表之间进行预先加载?

说我有表A(小学)

表A.    Id INT    名称

表B.    Id INT    aID INT

表C    Id INT    aID INT

1 个答案:

答案 0 :(得分:0)

评论太长了。

我认为您需要做的就是在所有表上编写查询:

select . ..
from a join
     b
     on b.aid = a.id join
     c
     on c.aid = a.id;

然后,数据库引擎管理存储,并可以智能地将页面加载到页面缓存中,并将它们缓存以备将来查询。

如果您尝试将其拆分为多个查询,那么我就不会看到a上的一个查询会导致加载b的相应行的方式。另一方面,桌子有多大?如果它们不大,表格将完全加载到页面缓存中,您不必担心单个行。

一个问题是初始查询将在冷缓存上,并且比后续查询花费的时间更长。