Иностранные ключи с SchemaExport в свободном случае Nibernate с использованием SQLite

StackOverflow https://stackoverflow.com/questions/3058005

Вопрос

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top