Я пытаюсь сопоставить два конкретных типа сущностей и абстрактный базовый тип с одной и той же таблицей базы данных.
Таблица содержит битовый столбец, который не принимает значение NULL. Столбец имеет значение по умолчанию: ((0)).
Только один из двух конкретных типов объектов (т. е. конкретный тип 1) должен использовать значение столбца (для другого (т. е. конкретного типа 2) оно всегда ложно).
Я попытался добавить свойство, сопоставленное с этим столбцом, только для типа сущности, для которого оно требуется, и
Когда я вызываю SaveChanges, я получаю UpdateException со следующим сообщением о самом внутреннем исключении:
"Столбец не может содержать нулевые значения. [Имя столбца = MY_BIT_COLUMN, имя таблицы = MY_TABLE]" я>
Я уже отредактировал раздел SSDL в EDMX и изменил:
<Property Name="MY_BIT_COLUMN" Type="bit" Nullable="false" />
to:
<Property Name="MY_BIT_COLUMN" Type="bit" Nullable="false" DefaultValue="false" />
(Без этого изменения сопоставление не удалось - не запустится)
Есть ли способ обойти это, не добавляя свойство, сопоставленное с этим столбцом, ко второму конкретному типу сущности или перемещая его в базовый тип?
Добавление защищенного свойства к конкретному типу 2 действительно работает, но я бы предпочел более элегантный обходной путь.