5

J'essaye de créer une application de base de données simple qui garde la trace des prêts de divers types d'équipement utilisant Fluent NHibernate et SQLite. Toutefois, lorsque j'essaie de générer la structure de base de données avec SchemaExport pour une utilisation dans le test unitaire, les clés étrangères pour les relations un-à-plusieurs ne sont pas créées.Clés étrangères avec SchemaExport dans Fluent NHibernate utilisant SQLite

Voici mon entité Equipment:

public virtual int Id { get; set; } 

public virtual EquipmentType Type { get; set; } 

public virtual int StockId { get; set; } 

Et voici mes correspondances pour Equipment:

Id(x => x.Id); 
References(x => x.Type); 
Map(x => x.StockId); 

Le SQL est généré correctement, à l'exception de l'absence de clés étrangères:

create table "Equipment" (
     Id integer, 
     StockId INTEGER, 
     Type_id INTEGER, 
     primary key (Id) 
    ) 

Est-il possible pour SchemaExport de genera les clés étrangères lors de l'utilisation d'une base de données SQLite?

Merci.

Répondre

3

J'ai rencontré le même problème.

SQLite ne prenait pas en charge initialement les clés étrangères (fonctionnalité introduite en 3.6.19), donc l'implémentation de NHibernate SQLiteDialect ne connaissait pas les clés étrangères.

SQLite ne prenant pas en charge l'ajout de contraintes via ALTER TABLE, uniquement via les paramètres CREATE TABLE, la création de clé étrangère par défaut de NHibernate n'est pas utilisée.

Il y a un incident enregistré sur NHJIRA https://nhibernate.jira.com/browse/NH-2200

Questions connexes