5

Fluent NHibernateとSQLiteを使用して、さまざまなタイプの機器のローンを追跡する簡単なデータベースアプリケーションを作成しようとしています。SchemaExportただし、単体テストで使用するデータベース構造を生成しようとすると、 1対多の関係の外部キーが作成されません。

これが私の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)
    )

SchemaExportSQLiteデータベースを使用するときに外部キーを生成することは可能ですか?

ありがとう。

4

1 に答える 1

3

私は同じ問題にぶつかった。

SQLiteは当初外部キー(3.6.19で導入された機能)をサポートしていなかったため、NHibernateSQLiteDialect実装は外部キーを認識しません。

SQLiteはALTERTABLEを介した制約の追加をサポートしていないため、CREATE TABLEパラメーターを介してのみ、NHibernateのデフォルトの外部キー作成は使用されません。

NHJIRAにログオンしたインシデントがありますhttps://nhibernate.jira.com/browse/NH-2200

于 2010-10-21T10:16:32.723 に答える