我正在编写一个 Web 应用程序,使用带有 Razor 视图的 asp.net MVC,其中进出服务器的数据由 ajax 处理并使用 KnockoutJs 映射到 UI。
我的模型是分层的,并且有子对象列表。现在这是问题所在:
当我编辑了主要对象(已经在数据库中) - 更改了一些属性,添加了一个子对象等 - 我应该如何在 NHibernate 中更新它?
在 Windows 应用程序中,主要对象存在于 NHibernate 会话中,并且可以轻松更新。在我的 web 应用程序中,我将 JSON 反序列化为一个“新”对象,然后需要将其重新附加到 NHibernate 会话。实际上这个反序列化是由模型绑定器完成的。
有这样做的聪明方法吗?我尝试了合并,但它不适用于添加的孩子。
我目前的解决方案是分别处理对模型的每次更改,即。当我添加一个孩子时,我通过 NHibernate 更新(通过 id 加载 mainmodel,将孩子添加到模型并点击更新),当我更新一些简单的属性时,我使用合并。我只是不认为这个解决方案非常优雅。
有什么建议么?