同様の質問がされましたが、ここでは答えが見つかりません。私は、次の流暢な関係はマップされています:私は親(フィルター・エンティティ)を削除しようとすると流暢NHibernateカスケード削除エラー
HasMany<UserFilter>(x => x.UserProjectFilters)
.KeyColumns.Add("UserProfileID")
.Cascade.All()
.AsSet()
.Inverse()
.Cache.ReadWrite();
は、削除がカスケードされません。私は例外が表示されています: "DELETE文がREFERENCE制約と競合しました..."。 NH Profilerでは、Deleteステートメントが親に対して生成されているが、子に対しては生成されていないことがわかります。親の前に実行されるすべての子に対する削除が期待されます。私は間違って何をしていますか?ここで
は関係のUserProfileFilterの終わりです:
References<Filter>(x => x.Filter)
.Column("FilterID")
.LazyLoad()
.Cascade.SaveUpdate();
ありがとうございました!私はあなたがこれは、子テーブルの上に複数の外部キーを持つ問題になってしまった、と間違ったキーがマッピングで使用されていたInverse()
は、フィルタとそれが何を見に戻って、子供の参照に)(.Cascade.SaveUpdateを取り出す試してみてください。あなたの関係を単純化すれば、問題を解決するのに役立つかもしれません。 SQLを見れば、まず親(Filter)を削除しようとしているのでしょうか? –