使用SQLite在Fluent NHibernate中使用SchemaExport的外键

时间:2010-06-16 23:53:08

标签: nhibernate sqlite fluent-nhibernate foreign-keys schemaexport

我正在尝试创建一个简单的数据库应用程序,它使用Fluent NHibernate和SQLite跟踪各种类型设备的贷款。但是,当我尝试使用SchemaExport生成用于单元测试的数据库结构时,不会创建一对多关系的外键。

这是我的Equipment实体:

public virtual int Id { get; set; }

public virtual EquipmentType Type { get; set; }

public virtual int StockId { get; set; }

以下是我Equipment的映射:

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

正确生成SQL,但缺少外键:

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

使用SQLite数据库时,SchemaExport是否可以生成外键?

感谢。

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。

SQLite最初不支持外键(3.6.19中引入的功能),因此NHibernate SQLiteDialect实现不了解外键。

由于SQLite不支持通过ALTER TABLE添加约束,仅通过CREATE TABLE参数,不使用NHibernate的默认外键创建。

NHJIRA https://nhibernate.jira.com/browse/NH-2200

上记录了一个事件