OptionSet类型字段的名称不会存储在实体名的视图中(<EntityName>, 例如Account实体,它在数据库中视图的名称为Account),更不会存在与实体名的表中(<EntityName>Base, 例如Account实体,它在数据库中表的名称就是AccountBase),它的名称是存储在StringMap这个视图中的.
我们通常会在报表中使用它的名称,而不是直接显示它的值,例如862030000. 这个时候我们就需要使用join来联结两个表, 下面是StringMap视图的截图:
StringMap视图在数据库中主要字段的说明:
字段名称 | 说明 |
---|---|
ObjectTypeCode | 实体的type code,可以通过Dynamics crm的浏览器插件来查看, 比如account实体对应的type code是1 |
AttributeName | 字段的名称,例caseorigincode |
AttributeValue | 就是与实体表中查看的这个optionset字段中的字段值,例如862030000 |
LangId | 是语言码,因为有些OptionSet字段既有中文的,又有英文的,如果是英文的就是1033, 中文是2052 |
OrganizationId | 是Organization的ID,可以在Settings->Customizations->Developer Resources->Instance Reference Information中查看 |
Value | 是真正在页面显示的那个值, 比如Call或者Email什么的 |
DisplayOrder | 是在你点击这个OptionSet控件这个下拉框的时候,它的显示顺序,在数据库中的值为1,2,3,4... |
StringMapId | 应该是每一个OpetionSet中每一个值的id,这个id是一个guid类型的,应该是不会重复的 |