【发布时间】:2011-12-21 19:07:19
【问题描述】:
我正在使用实体框架来检索大型数据集。
数据集集合有父子关系,需要同时带回父子信息。
我发现 EF 最初发送一个查询以获取父对象列表,然后遍历每个父对象并查询 DB 以获取子信息。
因此,如果我有 1000 个父对象,我最终会总共调用 1001 次数据库(每个父对象一次,加上获取父对象列表的原始查询)。
无论如何让EF查询这是一种更有效的方式?比如:
SELECT * FROM CHILD_OBJECT_TABLE WHERE PARENTID IN (LIST OF PARENT_IDS HERE)
【问题讨论】:
-
您的孩子和父母都在一张桌子上吗?
-
不,这是两个单独的表。子节点对父节点有一个外键。
-
表中的行数是否比您尝试加载的行数多?还是要全部加载?
标签: sql performance entity-framework