私は現在、別の関連するテーブルBへの外部キー参照を持っていたテーブルAを含むNHibernateアプリケーションを使用しています。この制約は、Bのアイテムがセカンダリアプリケーションによって制御不能に削除される可能性があるため、意図的に削除されました。
制約はなくなりましたが、 Bの行がまだ存在する場合は、 AからBへの参照が有用であると見なすことができます。それ以外の場合は、nullとして扱われる可能性があります。
Aによって参照されている行がBから削除されると、当然のことながら、「指定された識別子を持つ行は存在しません」という例外がスローされます。
Aからの参照がBに存在しなくなった場合に、アプリケーションによってオブジェクト参照がnullを返すように流暢に(または明示的なクエリ/結合を回避して)、参照がBに記述されているようにオブジェクトを返す方法はありますか?有効ですか?
現在の一方向の流暢なマッピング(外部キー参照として扱われる)は、次のようにかなり単純です。
...
References(a => a.b_ref, "b_id");
...