Pregunta

Estoy intentando crear una aplicación de base de datos simple que realiza un seguimiento de los préstamos de diversos tipos de equipos que utilizan Fluido NHibernate y SQLite. Sin embargo, cuando intento generar la estructura de base de datos con SchemaExport para su uso en las pruebas unitarias, las claves externas de relaciones de uno a muchos no se crean.

Aquí está mi entidad Equipment:

public virtual int Id { get; set; }

public virtual EquipmentType Type { get; set; }

public virtual int StockId { get; set; }

Y aquí están mis asignaciones para Equipment:

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

El SQL se genera correctamente, a excepción de la falta de claves externas:

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

¿Es posible que SchemaExport para generar las claves externas cuando se utiliza una base de datos SQLite?

Gracias.

¿Fue útil?

Solución

Me golpeó el mismo problema.

SQLite no apoyó inicialmente claves externas (característica introducida en 3.6.19) por lo que la aplicación NHibernate SQLiteDialect no sabe nada de claves externas.

Como SQLite no soporta la adición de restricciones a través de ALTER TABLE, sólo a través de los parámetros de CREATE TABLE, la creación de clave externa por defecto de NHibernate no se utiliza.

Hay un incidente registrado en NHJIRA https://nhibernate.jira.com/browse/NH- 2200

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top