2010-08-01 5 views
0

У меня возникла проблема с возвратом JsonNetResult для объекта, когда он является свойством другого объекта, однако, когда я получаю объект явно, он работает, например.JsonNetResult не возвращает S # arp Объект Nhibernate

JsonNetResult res = new JsonNetResult(); 
res.Formatting = Formatting.Indented; 
res.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; 
res.Data = addressRepository.Get(7); 
return res; 

возвращает действительный результат, однако

JsonNetResult res = new JsonNetResult(); 
res.Formatting = Formatting.Indented; 
res.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; 
res.Data = businessRepository.Get(businessID).Address; 
return res; 

возвращает пустой объект; как будет

JsonNetResult res = new JsonNetResult(); 
res.Formatting = Formatting.Indented; 
res.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; 
res.Data = addressRepository.Get(businessRepository.Get(businessID).Address.Id); 
return res;` 

, хотя адрес и его идентификатор в каждом случае одинаковы. Есть ли что-то действительно очевидное, я не хватает?

+1

Чтобы уточнить: просмотрели ли вы это в отладчике и определили, что 'businessRepository.Get (businessID) .Address' возвращает правильный объект, который вы действительно хотите? Что говорит отладчик - это значение 'res.Data' сразу после назначения? – Timwi

+0

Глядя на отладчик, объекты выглядят точно так же, кроме того, который не работает, имеет свойство «HibernateLazyInitializer» – MOP

ответ

1

Это звучит как проблема с ленивой нагрузкой, которая возникает при попытке гидратации объектов Json. Является ли свойство address строкой или ссылается на другой объект? Убедитесь, что рекурсивных ссылок нет, хотя JsonNetResult должен это решить.

Перейти в отображение вашего лица и добавить:

mapping.References(x => x.Address).Not.LazyLoad(); 

Это должно принимать любые ленивые прокси нагрузки из уравнения.

+0

. Удивительно, что он работает благодаря. Угадай, что я не могу совмещать lazyloading с Json – MOP

Смежные вопросы