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

时间:2013-07-17 19:59:54

标签: 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");

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

这是什么交易?

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

1 个答案:

答案 0 :(得分:6)

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

所以对于遇到这个问题的其他人来说:

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