【问题标题】:Retrieving Navigation Properties through WebGet method in WCF Data Service通过 WCF 数据服务中的 WebGet 方法检索导航属性
【发布时间】:2014-12-04 08:05:19
【问题描述】:
朋友们!
我在使用 WebGet 方法获取 WCF 数据服务中的导航属性时遇到问题。
- 我关闭了 ProxyCreationEnabled 和 LazyLoadingEnabled
- 我有
[DataContractAttribute(IsReference=true)] 和[DataMember] 属性。
- 我在服务端看到填充的属性,但在客户端看不到它们。
- 我创建了常用的 WCF 服务(基于
[ServiceContract] 属性),并在其客户端中看到了填充属性。
我做错了什么?非常感谢!
【问题讨论】:
标签:
c#
wcf-data-services
navigation-properties
webget
【解决方案1】:
如果实体不是 ComplexTypes,而是 EntityTypes(可以从它们自己的集合中检索),默认情况下它们不会被填充。你需要使用:
<host>/urlForResource?$expand=Property1,Property2
如果这不起作用,请检查您正在实现的 OData 的版本以及您正在使用的 WCF 数据服务的版本。如果您使用旧版本,$expand 可能不会在 WCF 数据服务中实现。
此外,在 WebApi 的 OData 服务中,必须添加一个 [EnableQuery] 属性以支持 $expand 等参数,寻找在 WCF DataServices 上启用查询选项的方法。