У меня есть ASP.NET MVC 4 WebApi. Я использую Entity Framework в качестве ORM (сначала базу данных). В БД есть только одна тестовая таблица с несколькими полями с int «id», установленным как идентификатор (автоинкремент).
Я просто пытаюсь реализовать базовый CRUD с помощью клиента javascript, но всегда получаю ModelState.IsValid = false
, когда добираюсь до метода POST. Я проанализировал ошибку и увидел, что она исходит из поля «id», которое имеет значение 0. Как API управляет такими ключами автоинкремента? Что он ожидает получить в поле «id»?
Все делается по шаблону. Я не менял код в сгенерированном WebApi контроллере. Все остальные операции (чтение, обновление, удаление) работают нормально.
РЕДАКТИРОВАТЬ: Обратите внимание, что если я обхожу тест ModelState.IsValid(), данные сохраняются в БД, и все работает... Но, очевидно, это не то, что я хочу делать.
EDIT 2: я обнаружил, что свойство identity в базе данных обрабатывается свойством StoreGeneratedPattern в поле id в EDMX. Возможные значения: «Вычислено», «Идентификация» и «Нет». В моем случае установлено значение «Идентификация».
Id
, есть ли у него атрибутRequired
? - person CodeNotFound   schedule 19.01.2013