Ошибка 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 метод, то ошибка не возникает.