【发布时间】:2014-01-29 22:29:32
【问题描述】:
我目前正在编写一个基于 WCF 数据服务工具包的 OData 服务。
服务公开了几个对象,下面列出了一个示例。
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 的 Id 存储在 Entitlement 对象中而不是整个 Item 对象中。
这适用于以下查询:Entitlement('1')/Item,服务了解它需要使用 ItemId 来执行查找。
但是,当我尝试使用以下 URL 扩展项目时会出现问题 权利('1')?$expand=Item
Item 总是返回为 null,我知道这是因为我没有将 Item 存储在权利对象上,但无论如何我可以强制 OData 以与处理投影相同的方式处理扩展语句吗?
我尝试过 Entitlement('1')?$select=Item 但这也返回为 null。
任何建议将不胜感激。
【问题讨论】:
标签: c# wcf wcf-data-services odata