用的SchemaExport外键的功能NHibernate使用SQLite
-
27-09-2019 - |
题
我试图创建一个简单的数据库应用程序,它会跟踪使用功能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的默认创建外键。
不隶属于 StackOverflow