Domanda

Sto tentando di creare una semplice applicazione di database che tiene traccia di 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'uso in unit test, chiavi esterne per relazioni uno-a-molti non vengono creati.

Ecco la mia entità Equipment:

public virtual int Id { get; set; }

public virtual EquipmentType Type { get; set; }

public virtual int StockId { get; set; }

E qui sono le mie 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 di generare chiavi esterne quando si utilizza un database SQLite?

Grazie.

È stato utile?

Soluzione

mi ha colpito lo stesso problema.

SQLite non ha inizialmente supporta le chiavi esterne (funzionalità introdotta in 3.6.19) in modo che la realizzazione NHibernate SQLiteDialect non conosce le chiavi esterne.

SQLite non supporta l'aggiunta di vincoli tramite ALTER TABLE, solo attraverso CREATE TABLE parametri, la creazione chiave esterna predefinita di NHibernate non è utilizzato.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top