サーバーとの間のデータがajaxによって処理され、KnockoutJsを使用してUIにマップされるRazorビューでasp.net MVCを使用して、Webアプリを作成しています。
私のモデルは階層的で、子オブジェクトのリストがあります。ここにキャッチがあります:
メイン オブジェクト (既にデータベースにある) を編集した場合、いくつかのプロパティを変更したり、子を追加したりしました。NHibernate で更新するにはどうすればよいですか?
Windows アプリでは、メイン オブジェクトは NHibernate セッションに存在し、簡単に更新できます。私の webapp では、JSON を「新しい」オブジェクトに逆シリアル化し、それを NHibernate セッションに再接続する必要があります。実際、このデシリアライゼーションはモデルバインダーによって行われます。
これを行うスマートな方法はありますか?Merge を試しましたが、子を追加するとうまくいきません。
私の現在の解決策は、モデルへの各変更を個別に処理することです。子を追加するときは、NHibernate を介して更新します (id で mainmodel をロードし、子をモデルに追加して更新を押します)。単純なプロパティを更新するときは、マージを使用します。このソリューションは非常にエレガントだとは思いません。
助言がありますか?