Добрый день!
Подскажите, пожалуйста, можно ли сделать и каким образом, чтобы определенные ссылочные поля сущности при выборе методом model.EnityName.Select() или model.EnityName.SelectOne() не загружались, и имели значение, например, null?
Поясню пошагово суть своей проблемы:
1. Есть сущность "пользователь". У него есть поле CreatorId.
2. По этому полю есть ссылка "Creator" на сущность пользователя (по сути таблица в бд ссылается сама на себя).
3. Есть сущность "роль". У нее есть поле CreatorId.
4. По этому полю есть ссылка "Creator" на сущность пользователя.
5. У пользователя есть ссылка на роли, чтобы в коде можно было взять сразу все роли пользователя без доп.запросов в БД.
Реальная ситуация:
У пользователя User1 есть создатель - пользователь Administrator.
У пользователя User1 есть роль - Admin.
У пользователя System есть создатель Administrator с ролью Admin.
Я написал веб-сервис, в котором есть метод GetUserById(Guid id), отдающий пользователя по его Id.
Когда я вызываю этот метод, то веб-сервис формирует экземпляр сущности "пользователь", игнорируя свойств Mode = Lazy, установленное для свойства "Creator", а сразу прогружает его из БД, потому что веб-сервис отдает готовый XML.
Соответственно, при попытке достать пользователя User1 - прогружается свойство "Creator" (пользователь Administrator) и тянется также и роль этого "креатора" = Admin.
Притянулась роль, у роли тоже есть "Creator" - Administrator.
Тянется еще раз Administrator, у него есть роль Admin. И так по кругу, пока не выпадет эксепшн (всё это происходит на стороне сервера в методе GetUserById(Guid id), то есть XML еще не прислался ни разу в клиента.
Что я делаю не так? Или подскажите, как отключить загрузку ссылочного свойства "Creator" в конкретном одном методе GetUserById(Guid id)...
Заранее спасибо.
Отредактировано пользователем 16 октября 2015 г. 16:51:41(UTC)
| Причина: Не указана