将nhibernate实体序列化为json错误:连接时无法序列化会话

时间:2011-05-01 22:39:24

标签: asp.net-mvc-3 json.net nhibernate-3

我正在尝试将一个nhibernate实体序列化为json,但我总是得到这个错误,说连接后无法序列化一个会话?它与nhibernate代理有关吗?

2 个答案:

答案 0 :(得分:13)

当我从System.Web.Script.Serialization.JavaScriptSerializer切换到Newtonsoft.Json时,我开始收到同样的错误。

使用this answer中的合约解析程序修复了此问题:

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

答案 1 :(得分:6)

是的,这与延迟加载有关。如果您希望JSON序列化它,您将需要配置NHibernate以急切地获取关联。但我建议您使用视图模型。 Ayende Rahien blogged关于此问题。