我正在尝试将一个nhibernate实体序列化为json,但我总是得到这个错误,说连接后无法序列化一个会话?它与nhibernate代理有关吗?
答案 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关于此问题。