当对象上的属性不存在时,在Dynamics365 web api中可以做什么?

时间:2017-07-03 08:47:48

标签: c# dynamics-crm microsoft-dynamics dynamics-crm-webapi dynamics-365

假设我们在Dynamics 365中有一个帐户实体,帐户具有c5编号和名称属性。

现在我想通过dynamics 365 Web API创建一个新帐户。我创建了一个帐户对象,其中包含c5编号,名称,并且我添加了一个aditional属性姓氏。 当我将此帐户对象发布到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 ...

我真的不明白为什么Dynamics 365 Web API无法忽略它无法使用的属性?

在这个特定的情况下,这意味着如果我们删除帐户实体上的名称属性,我们所有与Web API通信的系统都可能会崩溃。

我如何解决这个问题?无论如何强制动态365 Web API忽略一些属性?

1 个答案:

答案 0 :(得分:0)

Web Api不仅不会忽略未使用的值,而且即使在更新时,它也会更新您发送的所有值,即使它们是相同的。一步可以 - 通过将其设置为非NonSerialized来忽略该值,它将被排除。此外,您可以定义类成员的命名,因此您不必担心它们在代码中的命名方式。

`[Serializable]
public class Account    {
    [NonSerialized]
    public string lastname;

    [JsonProperty("firstname")]
    public string firstName;

    [JsonProperty("index")]
    public int c5;
}