Я использую Oracle с Entity Framework. Идентификаторы базы данных генерируются с использованием триггеров и последовательностей.
Я хочу настроить наследование таблиц для каждого типа, как описано здесь . Я установил "CourseId" как StoreGeneratedPattern для "Identity".
Кажется, все в порядке, кроме случаев, когда я вставляю строку. Таблица, представляющая базовый класс (в приведенном выше пошаговом руководстве, таблица «Курс»), как и ожидалось, получает сгенерированный идентификатор.
Однако в таблице, представляющей унаследованный класс (в пошаговом руководстве, указанном выше, таблица OnlineCourse), вставлена строка с нулевым значением CourseId. Это нарушает ограничение внешнего ключа.
Я предполагаю, что это как-то связано с последовательностью вставок. Я думаю, что это должно работать как:
- Вставить строку курса
- Получить вновь созданное значение CourseId
- Вставить онлайн-курс, используя новый идентификатор курса
Однако это не работает, потому что он просто использует значение по умолчанию CourseId (ноль) для вставки в OnlineCourse.
Есть идеи как это исправить?