Некоторая глупая ситуация с PK в C#: MVC3 не может вставить новую запись с переданным PK и пытается вставить NULL в качестве первичного ключа
Добрый день. У меня есть база данных MSSQL2008. И я сделал правильную модель для одной из существующих таблиц (VLAN).
public DbSet<VLAN> VLANs { get; set; }
Модель VLAN имеет поле:
[Key][Required]
public int VLAN_ID { get; set; } //in the "VLAN" table it is PK
...
Затем я пытаюсь вставить новое значение
_db.VLANs.Add(VLANToEdit); //<-- Here VLANToEdit has VLANToEdit.VLAN_ID == 144. No such data in the table
_db.SaveChanges(); //<--Here I got an exception.
MSSQL не может вставить значение NULL в поле VLAN_ID. Но почему? Я передаю реальное значение, но ноль? В чем дело? Я получаю следующее сообщение:
"Невозможно вставить значение NULL в столбец 'VLAN_ID', таблица 'VMMExt.dbo.VLANs'; столбец не допускает нулевые значения. INSERT завершается неудачей.\ R \n Определение завершено." строка
Если я удаляю атрибут [Key], в других местах я получаю сообщение об отсутствии полей ключа в таблицах VLAN.
Как это исправить и принудительно вставить с предоставленным значением первичного ключа?
1 ответ
Спасибо, глубокий поиск на этом сайте! Я нашел это здесь: C#.NET 4.0 MVC Вставка записи с первичным ключом
Все, что нужно, это добавить атрибут в модель: [DatabaseGenerated(DatabaseGeneratedOption.None)]
Вы можете удалить мой вопрос. Спасибо!