【问题标题】:Serialize nhibernate entity to json error: Cannot serialize a Session while connected将休眠实体序列化为 json 错误:连接时无法序列化会话
【发布时间】:2011-05-01 22:39:23
【问题描述】:

我正在尝试将 nhibernate 实体序列化为 json,但我总是收到此错误消息:连接时无法序列化会话?和nhibernate代理有关系吗?

【问题讨论】:

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


    【解决方案1】:

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

    使用来自this answer 的合约解析器解决了这个问题:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-27
        • 2012-08-20
        • 2012-03-12
        • 1970-01-01
        相关资源
        最近更新 更多