1
假设我们在Dynamics 365中有一个Account实体,帐户有c5号码和名称属性。当对象上的属性不存在时,Dynamics365 web api中如何处理?
现在我想通过动态365 Web API创建一个新帐户。我使用c5编号创建了一个账户对象,并且我添加了一个aditional属性lastname。 当我发布此帐户对象的Web API,我会得到这样的错误:
"code":"","message":"The property 'lastname' does not exist on type 'Microsoft.Dynamics.CRM.account'. Make sure to only use property names that are defined by the type.","innererror":{
"message":"The property 'lastname' does not exist on type 'Microsoft.Dynamics.CRM.account'. Make sure to only use property names that are defined by the ...
我真的不uderstand为什么动力学365的Web API只是不能忽视房地产的,它不能使用?
在这个特定的情况下,这意味着如果我们删除账户实体的名称属性,我们所有与Web API交谈的系统都有可能崩溃。
我该如何解决这个问题?无论如何强迫动态365 Web API忽略一些propertys?
你必须要接受最终,应用程序将不得不尝试插入到所请求的数据库列 - 这是正常的行为,这会为不存在的列会失败。至于删除:这只会是自定义属性的情况 - 您不能删除标准/托管属性。 – Filburt
我想知道是否可以使用MetaData服务在运行时查找给定实体的属性,然后过滤“POST”以仅包含您连接的实例中提供的属性。看起来像一个可能的候选人在MSDN的描述 - https://msdn.microsoft.com/en-us/library/mt607522.aspx#Retrieving属性一些[所以答案](https://stackoverflow.com/a/23445922/685760)也展示了如何去做这件事。 –
如果检索实体元数据的开销太大,您可以创建一个包含所有(必需)属性的“默认记录”,并用'new ColumnSet(true)'(SELECT * FROM)检索此记录,这将产生一个实体实例所有有效的属性。将它的ID重置为空,根据需要更新属性并'.Create()'。风险自负。我仍然建议根据实体(逻辑名称)和/或实体元数据来决定触摸属性。 – Filburt