Иностранные ключи с SchemaExport в свободном случае Nibernate с использованием SQLite
-
27-09-2019 - |
Вопрос
Я пытаюсь создать простую приложение базы данных, которое отслеживает кредиты различных типов оборудования, используя свободные NHIBERNATE и SQLITE. Однако, когда я пытаюсь создать структуру базы данных с SchemaExport
Для использования в модульном тестировании иностранные ключи для однозначных отношений не создаются.
Вот мой Equipment
организация:
public virtual int Id { get; set; }
public virtual EquipmentType Type { get; set; }
public virtual int StockId { get; set; }
И вот мои отображения для Equipment
:
Id(x => x.Id);
References(x => x.Type);
Map(x => x.StockId);
SQL генерируется правильно, за исключением отсутствия внешних клавиш:
create table "Equipment" (
Id integer,
StockId INTEGER,
Type_id INTEGER,
primary key (Id)
)
Возможно ли это SchemaExport
Чтобы генерировать внешние ключей при использовании базы данных SQLite?
Спасибо.
Решение
Я ударил ту же проблему.
SQLite не вначале поддерживает иностранные ключи (функция, представленная в 3.6.19), поэтому реализация NHIBERNATE SQLITEDIONCEALECT не знает о зарубежных ключах.
Поскольку SQLite не поддерживает добавление ограничений через ALTER Table, только через параметры создания таблицы, создание внешнего ключа по умолчанию NHIBERNATE не используется.
Есть инцидент, зарегистрированный на Nhjira https://nibernate.jira.com/browse/nh-2200.