親子エンティティをリストの子エンティティで保存(挿入)しようとしています。両方のエンティティは、主キーとしてGuidを使用します。キーはヌル入力不可であり、データベースにキー関係が設定されていません。NHibernateで親と子を同時に挿入する
保存が機能しません。子テーブルの親外部キーにnullを保存しようとしているという例外がスローされます。
私は、nhibernateがParentのキーを作成し、Childオブジェクトにそのことを知らせることを期待していました。これはNHibernateの制限ですか、またはGuidsを主キーとして使用するのですか?
このanswerは、あなたが親のmanullyを設定する必要があることを示唆しています、これは本当に唯一の方法ですか?ここで
参照のための私のマッピングです:
親のマッピング:
HasMany(x => x.Children).KeyColumn("ParentKey").Inverse().Cascade.All();
子供マッピング:
References(x => x.Parent).Not.Nullable().Column("ParentKey");
確かに、保存する前に実行時に参照があるとは思っていません。おそらく私の質問は誤解を招き、病気の編集です.NhibernateがParentとChildrenの両方を知っていることが新しいです。適切なキーでそれらを維持する方法を知っています....あまりにも多くの質問? – Dan
@ダンもっと役立つように私の答えを更新しました。 – docmanhattan
マッピングと制約の詳細については、このリンクを参照してくださいhttp://wiki.fluentnhibernate.org/Fluent_mapping#Access_strategies – cpoDesign