Прикрепление объекта к другому контексту в EF 4 - PullRequest
1 голос
/ 01 февраля 2011

У меня на сайте есть базовый класс со свойством: CurrentUser.Метод get этого свойства создаст новый контекст и получит объект User из базы данных, основываясь на информации об аутентичных файлах cookie.Пока все хорошо.

Но поскольку контекст закрыт, все, что я могу сделать вне этого, - это вызывать свойства непосредственно из User, например FirstName.

Но как только я пытаюсьнапример, получить отношение, например CurrentUser.UserOffices, это не сработает, поскольку я не включил UserOffices в запрос.

Есть ли способ создать новый контекст вне базового класса, к которому я могу прикрепить CurrentUserВозражать?Я попытался ctx.Attach (CurrentUser) без удачи.

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

Есть идеи?

1 Ответ

1 голос
/ 01 февраля 2011

Вы можете попробовать присоединить вашу сущность, а затем явно загрузить свойство:

ctx.Attach(CurrentUser);
ctx.LoadProperty(CurrentUser, u => u.UserOffices);

Я не уверен, работает ли это с POCO.

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

Другой вариант - просто загрузить UserOffices с запросом Linq-to-entity, ограничивающим условия для текущего пользователя.

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