В настоящее время я пишу службу OData, основанную на наборе инструментов WCF Dataservices.
Служба предоставляет несколько объектов, пример которых приведен ниже.
public class Entitlement : IEntity
{
#region Implementation of IEntity
public string Id { get; set; }
#endregion
public string ItemId { get; set; }
[ForeignProperty]
public Item Item { get; set; }
}
public class Item : IEntity
{
#region Implementation of IEntity
public string Id { get; set; }
#endregion
public string ItemName { get; set; }
}
Из-за данных, извлекаемых из 2 отдельных источников данных, я хочу сохранить толькоИдентификатор Item в объекте Entitlement, а не весь объект Item.
Это работает для таких запросов, как: Entitlement ('1') / Item, сервис понимает, что ему нужно использовать ItemId для выполненияуважать.
Однако проблема возникает, когда я пытаюсь развернуть Элемент, используя приведенное ниже право доступа к URL ('1')? $ Expand = Item
Элемент всегда возвращается как ноль, я понимаю, что этопотому что я не храню Item на объекте полномочий, но есть ли возможность заставить OData обрабатывать оператор расширения так же, как он обрабатывает проекцию?
Я пробовал Entitlement ('1')? $ select = Item, но это также возвращается как ноль.
Любые предложения будут с благодарностью.