在选择父集合时,我遇到了为子集合中的每个项目生成单独的 sql 查询的问题。
我有一个带有 IList 子对象集合的父对象。
如果我使用 linq 运行以下代码来休眠: IList parents = _repository.ToList();
我得到如下的 sql 语句:
SELECT * FROM Parent
SELECT * FROM Child WHERE ParentId = 1
SELECT * FROM Child WHERE ParentId = 2
SELECT * FROM Child WHERE ParentId = 3
SELECT * FROM Child WHERE ParentId = 4
etc etc
这显然效率极低,并假设它一定与映射文件有关?
下面是 Child 集合的映射:
<bag name="Children" lazy="false" table="Child" cascade="all-delete-orphan">
<key column="ParentId"/>
<one-to-many class="Child" />
</bag>
相信这是某个地方的新手错误。
任何帮助都非常感谢。
小号