我正在寫一個web應用程序,使用asp.net MVC剃刀意見,其中數據和從服務器通過使用AJAX處理,並映射到UI KnockoutJs。如何重新連接從Asp.Net MVC 4對象功能NHibernate
我的模型是分層的,並有子對象列表。現在,這裏的漁獲:
當我編輯的主要對象(即已經在數據庫中) - 改變了一些特性,增加了一個孩子,等等 - 我應該如何去NHibernate的更新呢?
在一個Windows應用程序在NHibernate會話存在的主要對象和可以很容易地更新。在我的webapp中,我將JSON去序列化爲一個「新」對象,然後需要重新連接到NHibernate會話。實際上這個反序列化是由模型綁定者完成的。
有沒有這樣做的巧妙方法?我嘗試了合併,但它不適用於添加的孩子。
我目前的解決方案是seperately處理每一個變化的模型,即。當我添加一個孩子時,我通過NHibernate進行更新(通過id加載mainmodel,將該孩子添加到模型並命中更新),當我更新一些簡單的屬性時,我使用merge。我只是不認爲這個解決方案非常優雅。
有什麼建議嗎?
您是否嘗試過一個簡單的'nhibernateSession.SaveOrUpdate(myNewObject);'或'nhibernateSession.Update(myNewObject);'? – jbl
是的。 Hibernate識別對象的id,並拒絕它。 – jand187
澄清:我試圖保存的對象在Hibernate會話中沒有引用,因爲它是由MVC Modelbinder創建的。該對象是等於我的會話,但不是ReferenceEquals。 – jand187