私たちのテストフィクスチャでは、NHibernateを使用してデータベーススキーマを生成します。あるエンティティが別のエンティティを参照しているが、外部キーの制約がないようにする(エンティティを削除して外部キーを使用できないようにする必要があります)という少し奇妙なケースがあります。Nhibernate - forign keyなしでスキーマを生成
生成されたスキーマに特定の関係の外部キーがないことを指定できますか?
私たちのテストフィクスチャでは、NHibernateを使用してデータベーススキーマを生成します。あるエンティティが別のエンティティを参照しているが、外部キーの制約がないようにする(エンティティを削除して外部キーを使用できないようにする必要があります)という少し奇妙なケースがあります。Nhibernate - forign keyなしでスキーマを生成
生成されたスキーマに特定の関係の外部キーがないことを指定できますか?
Jay-
あなたが流暢NHibernateはを使用している場合(規則を使用している場合)、あなたはIHasManyConventionまたはIReferenceConventionの実装のいずれかでこれを設定することができます。
Cascade.SaveUpdate()は、保存と更新を伝播する必要がありますが、親が削除されると孤立した子オブジェクトを残します。標準のNHibernate HBMファイルで
、私はバッグのタグは次のようになりますと信じて:
<bag cascade="save-update" name="EntityName"> ... </bag>
UPDATE:ここでは子オブジェクトを孤児の話題とカスケード値との相違点をAyendeによって情報の投稿があります。
あなたが参照されたエンティティを削除した場合、確かにあなたはそれを参照するentitesを更新する必要がありますか?これをせずに、参照整合性を壊しています。 –
それは意図です。この特定の(そして珍しい)ケースでは、それを参照するエンティティを更新せずにエンティティを削除できるようにしたいと考えています。外部キーの参照は暗黙的に失敗するはずです。 –