JavascriptからREST Webサービスを介してJSONコレクションを送信して、Json.NETを使用して逆シリアル化し、最後にNHibernateを使用してDBで更新します)。NHibernate - 削除しない孤児 - 外部キーがnullに設定されている
私のJSONは次のとおりです。
{
"ID": 1,
"Name": "ObjectName",
"Keys": [
{
"ID": 6,
"Name": "ID"
}
]
}
私の難しさは、私はJavaScriptで「キー」コレクションから、子を削除すると、その後の更新は唯一の子の外部キーをゼロにするということである - それは実際にはしません消して。私は親と子の両方の正しいマッピングと思われるものを設定している:
オブジェクト 1対多マッピング:
// one-to-many
HasMany(x => x.Keys)
.KeyColumn("ObjectID")
.Cascade.AllDeleteOrphan();
キー多対1のマッピング:
// many-to-one
References(x => x.Object)
.Cascade.None();
更新を実行
NHibernateのコード:
using (var transaction = Session.BeginTransaction())
{
Session.SaveOrUpdate(entity);
transaction.Commit();
}
Session.Flush();
この例は双方向ですが、私は単方向マッピングも試みましたが、これまでのところ効果はありませんでした。アソシエーション自体が壊れていても、子レコードはデータベースに保持されます(FKはNULLに設定されます)。
明らかに欠けていることは何ですか?