朋友们!我在使用 WebGet 方法获取 WCF 数据服务中的导航属性时遇到问题。
- 我关闭了 ProxyCreationEnabled 和 LazyLoadingEnabled
- 我有
[DataContractAttribute(IsReference=true)]
和[DataMember]
属性。 - 我在服务端看到填充属性,但在客户端看不到它们。
- 我创建了通常的 WCF 服务(基于
[ServiceContract]
属性),并在其客户端中看到了填充属性。
我究竟做错了什么?非常感谢!
朋友们!我在使用 WebGet 方法获取 WCF 数据服务中的导航属性时遇到问题。
[DataContractAttribute(IsReference=true)]
和[DataMember]
属性。[ServiceContract]
属性),并在其客户端中看到了填充属性。我究竟做错了什么?非常感谢!
如果实体不是 ComplexTypes,而是 EntityTypes(可以从它们自己的集合中检索),默认情况下它们不会被填充。你需要使用:
<host>/urlForResource?$expand=Property1,Property2
如果这不起作用,请检查您正在实现的 OData 的版本以及您正在使用的 WCF 数据服务的版本。如果您使用旧版本,则 $expand 可能不会在 WCF 数据服务中实现。
此外,在 WebApi 的 OData 服务中,必须添加一个 [EnableQuery] 属性以支持 $expand 等参数,寻找在 WCF DataServices 上启用查询选项的方法。