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