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