MS Dynamics WebApi添加productpricelevels失败,报错_pricelevelid_value属性异常
解决Dynamics CRM WebAPI推送productpricelevels时的OData绑定错误
问题根源
你错误地使用了只读的计算字段_pricelevelid_value来做OData绑定。从提供的元数据可以明确看到:
_pricelevelid_value被标记为Computed=true(由系统自动计算生成)- 权限仅设置为
Read(只读属性)
这类字段是系统用来存储关联实体GUID的底层字段,完全不支持通过@odata.bind注解进行写入绑定操作。
根据OData规范,只有导航属性才能使用@odata.bind来关联实体,而非这类_xxx_value格式的主键存储字段。
正确的请求数据格式
productpricelevels与pricelevels的关联导航属性名称为pricelevel(实体关联的导航属性通常对应关联实体的单数名称),你需要把绑定字段替换为pricelevel@odata.bind:
{ "amount": 124, "productnumber": "<EXISTING_PRODUCTNUMBER>", "pricelevel@odata.bind": "/pricelevels(<GUID>)" }
补充验证
如果不确定导航属性的准确名称,可以在Dynamics CRM的元数据文档中查找productpricelevels实体的NavigationProperty节点,对应关联pricelevels的属性名称就是你需要使用的绑定键。
内容的提问来源于stack exchange,提问作者Ingo Reimann
相关产品推荐
相关产品推荐

