5

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

这里是我的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) 
    ) 

SchemaExport有可能属于在使用SQLite数据库时使用外键?

谢谢。

回答

3

我遇到了同样的问题。

SQLite最初并不支持外键(在3.6.19中引入的功能),所以NHibernate SQLiteDialect实现不知道外键。

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

发生了登录NHJIRA的事件https://nhibernate.jira.com/browse/NH-2200