我试图创建一个简单的数据库应用程序,它会跟踪使用功能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生成外键?

感谢。

有帮助吗?

解决方案

我打同样的问题。

SQLite的开始并没有支持外键(在3.6.19推出功能),所以NHibernate的SQLiteDialect实现不知道外键。

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

有登录NHJIRA https://nhibernate.jira.com/browse/NH-入射2200

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top