Я использую DataServiceContext загрузить некоторые проекции сущностей (субъекты обладают многими свойствами, чтобы минимизировать трафик загружают только те свойства, которые необходимы в данный момент), как это:Услуги и прогнозы данных WCF. Как получить URI объекта из экземпляра проекции сущности?
from x in ctx.Portfolios
select new
{
Id = x.Id,
Name = x.Name,
PortfolioName = x.PortfolioName,
Description = x.Description,
ValidFrom = x.ValidFrom,
ValidUntil = x.ValidUntil
};
Что мне нужно, это действует URI объекта, чтобы загрузить его для просмотра подробностей.
Я попытался использовать ctx.TryGetUri (obj, out uri), но он всегда возвращает null (вероятно, из-за не отслеживающих прогнозов, однако, я загрузил свойство PK (Id), поэтому он не должно быть случая).
Вопрос в том, как определить URI базового объекта данных, имеющего проекционный объект с PK?
Мне не нужно устанавливать загруженные свойства. Мне просто нужно получить правильный URI объекта для загрузки его полной версии (не проекции) в другой контекст данных для редактирования. –
Если вас интересует только URI, тогда ничего не проектировать, просто выберите весь объект и затем используйте DataServiceContext.GetEntityDescriptor(), чтобы получить дескриптор объекта, в котором вы можете найти свойства SelfLink и EditLink, которые хранят URI, указывающий на этот объект (первый для чтения, второй для редактирования). –
Мне нужны проекции для загрузки облегченного списка бизнес-объектов для отображения в пользовательском интерфейсе. Когда пользователь дважды нажимает выбранную проекцию, мне нужно загрузить полный (200 столбцов) объект. –