3

假设我有一个自定义实体new_someentity,它有 2 个其他相关实体:我将调用的“所有者”实体new_ownerentity(这是 N:1 关系)和我将调用的“子”实体new_childentity(1:N 关系)。

我试图通过调用来填充相关实体LoadProperty

new_someentity en = context.new_someentitySet.First();
context.LoadProperty(en, "new_someentity_new_ownerentity");
context.LoadProperty(en, "new_someentity_new_childentity");

之后,en.new_someentity_new_ownerentity按照我的预期填充它并引用所有者实体,但en.new_someentity_new_childentity仍然为空。不会产生错误。

这是怎么回事?

附带说明一下,是否真的没有一种简洁的方法可以为 IEnumerable 实体加载相关实体,而无需LoadProperty单独在每个实体上使用?这似乎是 N+1 查询问题的一个非常经典的案例。

4

1 回答 1

6

仅仅因为您认为当对象没有任何子实体时它应该返回一个空列表并不意味着这就是 LoadProperty 的工作方式。

因此,对于遇到此问题的其他人:

当该记录没有任何相关记录时,即使在 1:N 关系上,LoadProperty 也会将该属性保留为空。

于 2013-07-18T14:42:00.420 回答