5

Sto tentando di creare un'applicazione di database semplice che tenga traccia dei prestiti di vari tipi di apparecchiature che utilizzano Fluent NHibernate e SQLite. Tuttavia, quando provo a generare la struttura del database con SchemaExport per l'utilizzo nel test dell'unità, le chiavi esterne per le relazioni uno-a-molti non vengono create.Chiavi esterne con SchemaExport in Fluent NHibernate con SQLite

Ecco il mio Equipment entità:

public virtual int Id { get; set; } 

public virtual EquipmentType Type { get; set; } 

public virtual int StockId { get; set; } 

E qui sono i miei mappature per Equipment:

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

L'SQL viene generato correttamente, tranne per la mancanza di chiavi esterne:

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

E 'possibile per SchemaExport generare le chiavi esterne quando si utilizza un database SQLite?

Grazie.

risposta

3

Ho riscontrato lo stesso problema.

SQLite inizialmente non supportava chiavi esterne (funzionalità introdotta in 3.6.19), pertanto l'implementazione di NHibernate SQLiteDialect non conosce le chiavi esterne.

Poiché SQLite non supporta l'aggiunta di vincoli tramite ALTER TABLE, solo tramite i parametri CREATE TABLE, la creazione della chiave esterna predefinita di NHibernate non viene utilizzata.

C'è un incidente registrato su NHJIRA https://nhibernate.jira.com/browse/NH-2200

Problemi correlati