Почему я получаю объект с нулевыми свойствами при возврате из вызова службы домена в приложении SV?я использую LinqToEntitiesDomainService - PullRequest
0 голосов
/ 06 октября 2011

Я звоню из приложения SV в службу домена и жду, чтобы получить IQueryable.В моей модели у меня есть отношение один к одному с объектом UserSession.Так что в запросе linq я говорю, что мне нужна энергичная загрузка в UserSession.

return (from u in this.ObjectContext.Users.Include("UserSession") where u.UserId == pUserID
    && u.UserSession != null select u).First<User>(); 

внутри метода в сервисе, если я обращаюсь к myUser.UserSession, у меня есть объект UserSession, но когда я получаю этот объектна Silverlight myUser.UserSession является нулевым.Зачем ?Это нормально иметь такое поведение?Я думаю, что это не так;потому что иначе я бы использовал отношения в EF, если не могу их использовать.При неудачном обходном пути нужно сделать 2 вызова, один для пользователя и один для сеанса пользователя.

Может кто-нибудь дать мне подсказку?спасибо.

1 Ответ

1 голос
/ 11 октября 2011

Наконец, я нашел ответ благодаря этому блогу: http://madsdevblog.blogspot.com/2011/02/eager-loading-ef4-entities-with-ria.html.

Но для краткости я пытался загрузить объект User, и чтобы сделать это в EF4, вы должны сделать этошаги:


Шаг I. Отключить активную загрузку "1. Дважды щелкните файл .edmx в обозревателе решений 2. Щелкните правой кнопкой мыши в любом месте белого пространства и выберите" Свойства "3. В свойствахв окне установите для LazyLoadingEnabled значение false. После этого вы увидите, что в сгенерированный файл будет добавлена ​​следующая строка: this.ContextOptions.LazyLoadingEnabled = false; "


Шаг II.Используйте Включить в запрос linq (шаг, который я уже делаю)


Шаг III.Добавление атрибута [Включить] к свойствам навигации "1. Найдите раздел, в котором установлены свойства навигации. 2. Добавьте [Включить] как атрибут под атрибутом [DataMember ()]. ​​3. Добавьте, используя System.ServiceModel.DomainServices.Server;к разделу использования в шаблоне. 4. Сохраните и запустите шаблон. "

...