Chaves estrangeiras com esquemaexport em Nibernato fluente usando SQLite
-
27-09-2019 - |
Pergunta
Estou tentando criar um aplicativo simples de banco de dados que acompanha empréstimos de vários tipos de equipamentos usando o Nibernato e o SQLite fluentes. No entanto, quando tento gerar a estrutura do banco de dados com SchemaExport
Para uso em testes de unidade, as chaves estrangeiras para relacionamentos um para muitos não são criadas.
Aqui está o meu Equipment
entidade:
public virtual int Id { get; set; }
public virtual EquipmentType Type { get; set; }
public virtual int StockId { get; set; }
E aqui estão meus mapeamentos para Equipment
:
Id(x => x.Id);
References(x => x.Type);
Map(x => x.StockId);
O SQL é gerado corretamente, exceto pela falta de chaves estrangeiras:
create table "Equipment" (
Id integer,
StockId INTEGER,
Type_id INTEGER,
primary key (Id)
)
É possível para SchemaExport
Para gerar chaves estrangeiras ao usar um banco de dados SQLite?
Obrigado.
Solução
Eu atingi o mesmo problema.
O SQLite não apoiou inicialmente as chaves estrangeiras (recurso introduzido em 3.6.19), portanto a implementação do Nibernate SQLitedialect não conhece as chaves estrangeiras.
Como o SQLite não suporta adicionar restrições através da tabela ALTER, somente por meio de parâmetros de tabela CREATE, a criação padrão de Nibernate padrão não é usada.
Há um incidente conectado a Nhjira https://nhibernate.jira.com/browse/nh-2200