Обновление модели приложения MVC вместе с источником данных - PullRequest
1 голос
/ 04 февраля 2010

Во-первых, новинка в Asp.Net MVC и модели данных сущностей ADO.NET.

Во время практики на примере я создал таблицу, но забыл установить "Идентификация идентичности " в true для PK .

Создал модель для приложения MVC, используя объектную модель данных, и работал нормально.

Позже я установил для "Идентификационная спецификация " значение true для этой таблицы в БД.

Когда я пытаюсь вставить запись, возникает исключение, и запись не вставляется.

{"Невозможно вставить явное значение для идентификационный столбец в таблице «Контакты» когда для IDENTITY_INSERT установлено значение OFF. "}

Вот класс, созданный digner в модели, который должен был измениться согласно изменениям схемы в DB

public static Contact CreateContact(int id, string firstName, string lastName, string phone, string email)
        {
            Contact contact = new Contact();
            contact.Id = id;
            //
            return contact;
        }

Нет необходимости в переменной «Id» в вышеуказанной подписи метода, поскольку она все еще генерируется автоматически.

Как мы можем заставить нашу модель обновляться самостоятельно или вручную, если схема базы данных обновлена.

ПРИМЕЧАНИЕ : с использованием C #, ASP.NET MVC

Спасибо

1 Ответ

1 голос
/ 04 февраля 2010

Правильно настройте схему БД, затем щелкните правой кнопкой мыши модель и выберите «Обновить модель из базы данных». Это исправит SSDL в вашем EDMX, который сообщит EF, что id генерируется хранилищем.

Однако он не удалит аргумент id из метода CreateContact. Генератор кода EF помещает все ненулевые свойства в сигнатуру этого метода. Но как только вы обновите SSDL, вы больше не должны получать исключение при сохранении; если вы хотите использовать этот метод (вам не нужно), вы можете просто передать 0.

...