簡體   English   中英

如何將對象從Asp.Net MVC 4重新附加到Fluent NHibernate

[英]How to reattach objects from Asp.Net MVC 4 to Fluent NHibernate

我正在使用帶有Razor視圖的asp.net MVC編寫一個Web應用程序,其中往返於服務器的數據由ajax處理並使用KnockoutJs映射到UI。

我的模型是分層的,並具有子對象列表。 現在這是要抓住的地方:

當我編輯了主要對象(已經在數據庫中)時-更改了一些屬性,添加了一個子對象,等等-我應該如何在NHibernate中更新它?

在Windows應用程序中,主要對象存在於NHibernate會話中,並且可以輕松更新。 在我的Web應用程序中,我將JSON反序列化為“新”對象,然后需要將其重新連接到NHibernate會話。 實際上,反序列化是由模型綁定器完成的。

有這樣做的聰明方法嗎? 我嘗試了合並,但不能與添加的孩子一起使用。

我當前的解決方案是分別處理模型的每個更改。 當我添加一個孩子時,我會通過NHibernate進行更新(通過id加載主模型,將孩子添加到模型中並點擊更新),當我更新一些使用合​​並的簡單屬性時。 我只是認為這種解決方案不是很優雅。

有什么建議么?

當您從有狀態的世界過渡到無狀態的世界時,這絕對令人困惑。 在您的操作方法中,您已經有了正確的模式:

  1. 從數據庫加載對象
  2. 根據視圖模型對其進行更改
  3. 刷新會話/提交交易

如果在會話中跟蹤對象,並且您使用的合並錯誤,則不需要調用Update或SaveOrUpdate。 通常,您需要調用的唯一持久性方法是“保存”以使新對象持久化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM