为什么LoadProperty没有为1:N关系加载相关实体?(CRM2011,早期绑定实体类)

Mat*_*ard 3 c# dynamics-crm-2011

假设我有一个自定义实体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");
Run Code Online (Sandbox Code Playgroud)

之后,en.new_someentity_new_ownerentity填充,因为我希望它与所有者实体的引用,但en.new_someentity_new_childentity仍然是null.没有错误产生.

这是怎么回事?

在旁注中,是否真的没有一种简洁的方法来为IEnumerable实体加载相关实体而无需LoadProperty单独使用每个实体?这似乎是N + 1查询问题的一个非常经典的案例.

Mat*_*ard 6

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

所以对于其他人来说:

当没有该记录的任何相关记录时,LoadProperty将使该属性保留为null,即使在1:N关系上也是如此.