проблема ленивой нагрузки на кросс-машине nhibernate - PullRequest
1 голос
/ 30 ноября 2009

у меня есть клиент, сервер и дБ БД сопоставлен с сервером с беглым nhibernate. Все идет нормально клиент общается с сервером с wcf. я хочу реализовать отложенную загрузку на стороне клиента.

есть ли какое-нибудь решение?

Ответы [ 5 ]

3 голосов
/ 30 ноября 2009

AFAIK, решения для этого не существует, ленивая загрузка работает с прокси-механизмом nhibernate, который очень присущ его реализации. был один проект под названием Nhibernate.Remote , но он был заброшен. nhibernate будет работать поверх wcf, но без отложенной загрузки.

0 голосов
/ 20 июля 2010

С кодом ниже WCF может работать с отложенной загрузкой:

var proxy = myObj as INHibernateProxy;
myObj = (myObj)proxy.HibernateLazyInitializer.GetImplementation();
0 голосов
/ 30 января 2010

Извините за пессимизм, но заставить NHibernate работать с отложенной загрузкой через WCF это НЕ НАДО РАБОТАТЬ .

0 голосов
/ 06 декабря 2009

Когда я понял, что это не может произойти, я решил работать с проекцией и преобразователем результата.

хорошо работает.

если мне нужно загрузить коллекцию отложенной загрузки, я просто повторяю ее на сервере и отправляю обратно клиенту, когда я хочу обновить частично выбранный объект, мне нужно повторно выбрать его из базы данных и обновить полностью объект данных.

но оно того стоит

0 голосов
/ 01 декабря 2009

Природа WCF заключается в том, чтобы учиться формировать ваши данные перед отправкой, т. Е. Они уже были получены и помещены в какой-то тип данных.

Возможно, вы могли бы указать параметр в вызове первичной службы, чтобы указать, должны ли заполняться дочерние свойства, хотя то, как далеко вы зайдете, всегда будет сложно.

...