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

ryu*_*ice 10 json.net nhibernate-3 asp.net-mvc-3

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

Zar*_*dan 13

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

使用此答案中的合同解析程序修复了此问题:

string output = JsonConvert.SerializeObject(theObject,
                new JsonSerializerSettings()
                {
                    ContractResolver = new NHibernateContractResolver()
                });
Run Code Online (Sandbox Code Playgroud)


Dar*_*rov 6

是的,这与延迟加载有关.如果您希望JSON序列化它,您将需要配置NHibernate以急切地获取关联.但我建议您使用视图模型.Ayende Rahien在博客中写到了这个问题.