Таблица EF для каждой иерархии (TPH) не сохраняется, поскольку невозможно вставить значение NULL в столбец "Дискриминатор"
У меня есть таблица, используемая для категории с несколькими типами, и она содержит столбец Discriminator с именем "ClassName", чтобы указать тип объекта для загрузки. Столбец ClassName не имеет значения NULL и имеет значение по умолчанию "Категория".
Моя проблема при сохранении нового элемента, я получаю сообщение об ошибке: "Невозможно вставить значение NULL в столбец ClassName" Таблица категории.
Я думал, что ef установит базу значений ClassName для нового класса объектов. Как я могу сохранить свой объект с правильным значением ClassName?
2 ответа
Я изменил свою структуру БД, чтобы принять ноль. EF установит нулевое значение, если имя объекта соответствует имени таблицы, и установит имя дискриминатора для производных классов.
Это старый вопрос, но я только что встретил его сегодня. В коде.net 4.0 сначала не встречается "столбец отказа от ответственности", но при переходе на чистый 3.5 он утомляет меня на один день. Это мое решение
Измените столбец в базе данных на ALLOW NULL (используя alter table) и обновите файл edmx, чтобы он обновил изменение (разрешить null)