Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 什么';Entity.Attributes和Entity.FormattedValues之间的区别是什么?_C#_Attributes_Dynamics Crm 2013 - Fatal编程技术网

C# 什么';Entity.Attributes和Entity.FormattedValues之间的区别是什么?

C# 什么';Entity.Attributes和Entity.FormattedValues之间的区别是什么?,c#,attributes,dynamics-crm-2013,C#,Attributes,Dynamics Crm 2013,我正在学习如何编写自定义工作流,并试图找出我需要的所有值存储在何处以及以何种格式存储。我注意到我可以访问属性和格式化值属性中的实体实例数据我如何知道何时使用哪一个? 我注意到MSDN的评论“实体格式的值仅在检索操作中可用,而在更新操作中不可用。” 为了进行测试,我创建了两个foreach块,遍历这两个集合属性给我65行,而格式化值给我39行。我可以看到,是的,FormattedValues的输出确实是格式化的。 例如,其中属性给出输出“Microsoft.Xrm.Sdk.OptionSetVal

我正在学习如何编写自定义工作流,并试图找出我需要的所有值存储在何处以及以何种格式存储。我注意到我可以访问
属性
格式化值
属性中的
实体
实例数据我如何知道何时使用哪一个?

我注意到MSDN的评论“实体格式的值仅在检索操作中可用,而在更新操作中不可用。”

为了进行测试,我创建了两个foreach块,遍历这两个集合<代码>属性给我65行,而
格式化值
给我39行。我可以看到,是的,FormattedValues的输出确实是格式化的。 例如,其中
属性
给出输出
“Microsoft.Xrm.Sdk.OptionSetValue”
格式化值
给出一个带有实际值的字符串


哪些值/属性通常被排除在
FormattedValues
集合之外,以及为什么?

我不能100%确定这一点,但格式化的值是您可以在表单上看到的值。在该列表中,您将能够找到带有$symbol或选项集标签的货币类型。文本字段不应显示,因为它已经是人类可读的


请参阅本文以了解更多有关它的信息。我很少使用这个属性列表,因为数据是字符串格式的。我发现检索操作集标签非常有用。

快速检查后,似乎属性和格式值之间的区别在于前者与存储在DB中的实际值(或者至少是在获取时存储在DB中的值)不同而后者则为用户提供所需的服务

我没有使用格式化的值,但除非得到证明,否则我会说,实体的属性将为您提供所考虑的字段所基于的类型化的值(即int、DateTime等),而其格式化的值是该值的呈现、字符串化表示(取决于例如您所指的形式、语言等)

根据这种逻辑,我希望格式化值集属性集的子集。此外,它应该由独占的字符串类型的值组成,而对应的值是

我能想到的一个不同的例子是一个名为picky的选项集,当前选择的选项名为“hazaa”,ID为1234。下面的示例是用心编写的,请随意更正。它举例说明了这一点:plainValue将是一个等于1234的整数,而formattedValue将是“hazaa”

我要说的是,定语法更可靠,因为它会呈现实际值,而另一种方法可能会导致意外的结果。不过,我必须补充一点,它有一定的便利性

就我个人而言,我建议研究一下这个方法,或者像每个自以为是的CRM开发人员一样,拥有自己的带有扩展方法的类,并在其中使用方法Get(T,String)。这为您提供了控制感,并提供了最好的可预测性和可读性,IMAO

int plainValue = (int)entity["picky"];
String formattedValue = (String)entity.FormattedValues["picky"];