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.

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top