Ошибка Odata v4 "Не поддерживает нетипизированное значение в не открытом типе"

Когда я обновил модель, она выбрасывает "Не поддерживает нетипизированное значение в не открытом виде". Он работал до обновления. Не удалось установить источник проблемы. есть идеи.

Ответ 1

Я уже сталкивался с этой ошибкой, и она была вызвана передачей свойства объекта JSON, которого нет в модели данных.

Например, учитывая модель данных:

public class User
{
    public long UserId { get; set; }

    public string UserName { get; set; }
}

И у контроллера OData есть метод:

public IHttpActionResult Post(User user)

Когда следующие данные отправляются с использованием метода POST:

{
    "UserId": "0",
    "UserName": "test",
    "UserPassword": "test"
}

Затем сервер вернет ошибку 400 со следующим ответом:

{
    "error": {
        "code": "",
        "message": "The request is invalid.",
        "innererror": {
            "message": "user : Does not support untyped value in non-open type.\r\n",
            "type": "",
            "stacktrace": ""
        }
    }
}

Таким образом, если свойство UserPassword в этом примере удаляется из данных, отправленных с использованием метода POST, то ошибка не возникает.