【发布时间】:2011-05-01 22:39:23
【问题描述】:
我正在尝试将 nhibernate 实体序列化为 json,但我总是收到此错误消息:连接时无法序列化会话?和nhibernate代理有关系吗?
【问题讨论】:
标签: asp.net-mvc-3 json.net nhibernate-3
我正在尝试将 nhibernate 实体序列化为 json,但我总是收到此错误消息:连接时无法序列化会话?和nhibernate代理有关系吗?
【问题讨论】:
标签: asp.net-mvc-3 json.net nhibernate-3
当我从 System.Web.Script.Serialization.JavaScriptSerializer 切换到 Newtonsoft.Json 时,我开始遇到同样的错误。
使用来自this answer 的合约解析器解决了这个问题:
string output = JsonConvert.SerializeObject(theObject,
new JsonSerializerSettings()
{
ContractResolver = new NHibernateContractResolver()
});
【讨论】:
是的,这与延迟加载有关。如果您希望能够对它进行 JSON 序列化,您将需要配置 NHibernate 以急切地获取关联。但我建议您改用视图模型。 Ayende Rahien blogged 关于这个问题。
【讨论】: