Сериализация nhibernate-сущности с ошибкой json: не удается сериализовать сеанс при подключении

Я пытаюсь сериализовать сущность nhibernate в json, но я всегда получаю эту ошибку, говоря, не может сериализовать сеанс при подключении? Это как-то связано с прокси nhibernate?

2 ответа

Решение

Я начал получать ту же ошибку, когда я переключился с System.Web.Script.Serialization.JavaScriptSerializer в Newtonsoft.Json,

Использование распознавателя контракта из этого ответа решило эту проблему:

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

Да, это связано с отложенной загрузкой. Вам нужно будет настроить NHibernate, чтобы охотно получать ассоциации, если вы хотите иметь возможность его сериализации JSON. Но я бы порекомендовал вам вместо этого использовать модели представления. Ayende Rahien написал в блоге об этой проблеме.

Другие вопросы по тегам