私は2つのテーブルを持っています:
- レシート
- レシートジャーナル
Receipt
0...nReceiptJournals
この ( のReceipt
) マッピングは次のようになります。
this.HasMany(x => x.ReceiptJournals).AsSet().Fetch.Select().Inverse().Cascade.Delete();
私が使用している基礎となるデータベースは SQL Server CE 4.0 です。
今、削除ステートメントを実行すると
const string sql = "delete from Receipt where IsFinished = 0 and IsParked = 0";
var query = NHibernateHelper.CurrentSession.CreateSQLQuery(sql);
query.ExecuteUpdate();
例外があります:
ネイティブ一括操作クエリを実行できませんでした: IsFinished = 0 および IsParked = 0 の領収書から削除します[SQL: IsFinished = 0 および IsParked = 0 の領収書から削除]
System.Exception {NHibernate.Exceptions.GenericADOException}
[System.Data.SqlServerCe.SqlCeException] {"Der Primärschlüsselwert kann nicht gelöscht werden, da noch Verweise auf diesen Schlüssel vorhanden sind. [ 外部キー制約名 = FK_Receipt_ReceiptJournal ]"} System.Data.SqlServerCe.SqlCeException
SQL Server CE を使用する NHibernate はカスケード削除をサポートしていませんか、それとも間違っていますか?