Таблица EF для каждой иерархии (TPH) не сохраняется, так как не может вставить нулевое значение в столбец Дискриминатор - PullRequest
0 голосов
/ 26 сентября 2011

У меня есть таблица, используемая для кратного типа категории, и она содержит столбец Discriminator с именем 'ClassName', чтобы указать тип объекта для загрузки. Столбец ClassName не имеет значения NULL и имеет значение по умолчанию «Категория»

Моя проблема при сохранении нового элемента, я получаю сообщение об ошибке: «Невозможно вставить нулевое значение в столбец ClassName» Таблица Category.

Я думал, что ef установит базу значений ClassName для нового класса объектов. Как я могу сохранить свой объект с правильным значением ClassName?

Ответы [ 2 ]

1 голос
/ 21 ноября 2011

Я изменил свою структуру БД, чтобы принять ноль. EF установит нулевое значение, если имя объекта соответствует имени таблицы, и установит имя дискриминатора для производных классов.

0 голосов
/ 25 февраля 2015

Это старый вопрос, но я только что встретил его сегодня.В коде .net 4.0 сначала не встречается «столбец отказа от ответственности», но при переходе на чистый 3.5 он утомляет меня на один день.Это моё решение

Измените столбец в базе данных на ALLOW NULL (используя alter table) и обновите файл edmx, чтобы он обновил изменение (разрешить null)

...