0

質問は次のとおりです。型から継承する場合にエンティティ参照を削除しないようにする規則を作成するにはどうすればよいRootですか。


私は流暢なnhibernateを使用しており、それは自動マッピング機能です。デフォルトでカスケード削除をオンにしました。

別のルートを参照する集約ルートを実際に削除する必要がある場合に最終的に問題が発生するまで、すべてが本当にクールでした。

私はルーツを手に入れましUserApplicationUserレジスタApplicationsUser誤って登録された場合、ロールで削除できる時間差がわずかにありAdminます(そのデータは必要ないと確信しています)。

User削除Applicationすると、カスケード削除のため、nhibernateはUserそれ自体を削除します(皮肉なことに...)。


[アプリケーション]->[ユーザーの関連付け]のみにカスケードするSaveUpdateを指定する方法がわかりません。

代替テキスト


トリックを行います:

m.References(x=>x.RegisteredBy).Cascade.SaveUpdate(); //RegisteredBy.Type==User

さらに、オーバーライドを探す場所をfnhに伝えました。

var m=new AutoPersistenceModel(storeCfg);
m.UseOverridesFromAssembly(assembly);
4

1 に答える 1

1

アプリケーション->ユーザーの関連付けのカスケードの動作をオーバーライドできます。all-delete-orphanの代わりにSaveUpdate()を設定する必要があります。これを行うには、実装する必要がありますIAutomappingOverride<Application>

于 2010-11-07T14:35:17.733 に答える