ASP.NET MVC 4 ModelState недопустим при передаче ключа
У меня есть ASP.NET MVC 4 WebApi. Я использую Entity Framework в качестве своего ORM (сначала база данных). В БД есть только одна тестовая таблица с несколькими полями, в которой для идентификатора int задано значение id (автоинкремент).
Я просто пытаюсь реализовать базовый CRUD с клиентом JavaScript, но я всегда получаю ModelState.IsValid = false
когда я доберусь до метода POST. Я проанализировал ошибку и увидел, что она идет из поля "id", значение которого равно 0. Как API управляет этим видом ключей автоинкремента? Что он ожидает получить в поле "id"?
Все основано на шаблоне. Я не изменил код на сгенерированный контроллер WebApi. Все остальные операции (чтение, обновление, удаление) работают нормально.
РЕДАКТИРОВАТЬ: Обратите внимание, что если я обойду тест ModelState.IsValid(), данные сохраняются в БД, и все работает... Но, очевидно, это не то, что я хочу делать.
РЕДАКТИРОВАТЬ 2: я обнаружил, что свойство удостоверения в базе данных обрабатывается свойством StoreGeneratedPattern в поле id в EDMX. Возможные значения: "Computed", "Identity" и "None". В моем случае это "Идентичность".
1 ответ
Проверьте, не подтвержден ли идентификатор в вашей модели. Установите идентификатор как автоматически созданный.