Asp.net-Mvc-3

將休眠實體序列化為 json 錯誤:連接時無法序列化會話

  • May 3, 2017

我正在嘗試將 nhibernate 實體序列化為 json,但我總是收到此錯誤消息:連接時無法序列化會話?它與休眠代理有關嗎?

當我從 切換System.Web.Script.Serialization.JavaScriptSerializer到時,我開始遇到同樣的錯誤Newtonsoft.Json

使用此答案中的契約解析器解決了此問題:

string output = JsonConvert.SerializeObject(theObject,
               new JsonSerializerSettings()
               {
                   ContractResolver = new NHibernateContractResolver()
               });

是的,這與延遲載入有關。如果您希望能夠對它進行 JSON 序列化,您將需要配置 NHibernate 以急切地獲取關聯。但我建議您改用視圖模型。Ayende Rahien 在部落格上討論了這個問題。

引用自:https://stackoverflow.com/questions/5851937