Ошибка вставки при использовании наследования структуры объекта - PullRequest
0 голосов
/ 08 июля 2011

У меня есть две таблицы, одна с именем Person, которая является абстрактной, со скалярными свойствами "Id" и "Name", где ключ "Id" является первичным ключом.еще один с именем «Student» наследуется от Person

. Я использую следующий код для вставки студента в базу данных:

    TestModeContainer testModel = new TestModeContainer();
    Student student = testModel.CreateObject<Student>();
    student.Id = "s1";
    student.Grade = "g2";
    student.Name = "Lighter.Spark";
    testModel.AddObject("PersonSet", s);

    testModel.SaveChanges();

Когда я вызываю SaveChanges для сохранения данных в базе данных, System.Data.Произошло исключение UpdateException.Внутреннее исключение говорит: «Невозможно вставить значение NULL в столбец« Id », таблица« Temp.dbo.PersonSet »; столбец не допускает нулевые значения. INSERT завершается неудачей. \ R \ nОпределение завершено».Кто может сказать мне, почему?И как это исправить?

1 Ответ

2 голосов
/ 08 июля 2011

Измените StoreGeneratedPattern для вашего поля Id на None.Identity означает, что значение будет установлено в базе данных, и поэтому значение, установленное в приложении, никогда не передается в базу данных.

...