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 ответ

Проверьте, не подтвержден ли идентификатор в вашей модели. Установите идентификатор как автоматически созданный.

Другие вопросы по тегам