Внешние ключи с SchemaExport в Fluent NHibernate с использованием SQLite - PullRequest
5 голосов
/ 17 июня 2010

Я пытаюсь создать простое приложение базы данных, которое отслеживает кредиты на различные типы оборудования, используя Fluent 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)
    )

IsSchemaExport возможно ли генерировать внешние ключи при использовании базы данных SQLite?

Спасибо.

1 Ответ

3 голосов
/ 21 октября 2010

Я столкнулся с той же проблемой.

SQLite изначально не поддерживал внешние ключи (функция представлена ​​в 3.6.19), поэтому реализация NHibernate SQLiteDialect не знает о внешних ключах.

Поскольку SQLite не поддерживает добавление ограничений через ALTER TABLE, а только через параметры CREATE TABLE, создание внешнего ключа по умолчанию NHibernate не используется.

В NHJIRA зарегистрирован инцидент https://nhibernate.jira.com/browse/NH-2200

...