Dynamics CRM中的Entity.GetAttributeValue <t>(名称)和实体[名称]之间有什么区别?</t>

时间:2013-10-10 17:26:55

标签: entity-framework dynamics-crm-2011 crm microsoft-dynamics

使用后期绑定对CRM SDK进行编码时,使用GetAttributeValue方法访问属性和直接在Entity对象上访问属性之间的区别是什么?

我仍然是.NET和c#的新手,所以如果它是一个简单的语言/平台理解问题,那么道歉但也许这就是为什么我找不到差异的原因。

2 个答案:

答案 0 :(得分:5)

如果您尝试访问不在实体的属性集合中的属性,

entity["myattributename"]将抛出异常。它也会将其作为对象返回。

如果找不到,

entity.GetAttributeValue<T>将返回该类型的默认值,如果它不在实体的属性集合中,则不会抛出异常。

答案 1 :(得分:0)

entity.GetAttributeValue<T>将返回一个可以在LINQ表达式中使用的IEnumerable对象。这可以大大加快开发时间并减少代码逻辑行。根据Daryl的回应(良好的解释here :)。