Что делать в веб-интерфейсе Dynamics365, если свойство объекта не существует?

Предположим, что у нас есть сущность Account в Dynamics 365, атрибут account и c5 number и name.

Теперь я хочу создать новую учетную запись через веб-API Dynamics 365. Я создаю объект учетной записи с номером c5, именем и добавляю дополнительный атрибут фамилия. Когда я публикую этот объект учетной записи в 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 ...

Я действительно не понимаю, почему веб-API Dynamics 365 просто не может игнорировать свойства, которые он не может использовать?

В этом конкретном случае это означает, что если мы удалим свойство name в сущности учетной записи, есть вероятность того, что все наши системы, которые общаются с Web API, потерпят крах.

Как я могу обойти эту проблему? Есть ли способ заставить динамический веб-интерфейс 365 игнорировать некоторые свойства?

1 ответ

Web Api не только не игнорирует неиспользуемые значения, но даже при обновлении обновляет все отправленные вами значения, даже если они равны. Так как одним шагом может быть - игнорировать это значение, установив его как NonSerialized, оно будет исключено. Кроме того, вы можете определить наименование для членов класса, так что вам не нужно беспокоиться о том, как они названы в коде.

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

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

    [JsonProperty("index")]
    public int c5;
}
Другие вопросы по тегам