Внешние ключи с SchemaExport в Fluent NHibernate с использованием SQLite

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

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

Спасибо.


person Community    schedule 16.06.2010    source источник


Ответы (1)


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

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

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

На NHJIRA https://nhibernate.jira.com/browse/NH-2200

person Bogdan    schedule 21.10.2010