0

朋友们!我在使用 WebGet 方法获取 WCF 数据服务中的导航属性时遇到问题。

  1. 我关闭了 ProxyCreationEnabled 和 LazyLoadingEnabled
  2. 我有[DataContractAttribute(IsReference=true)][DataMember]属性。
  3. 我在服务端看到填充属性,但在客户端看不到它们。
  4. 我创建了通常的 WCF 服务(基于[ServiceContract]属性),并在其客户端中看到了填充属性。

我究竟做错了什么?非常感谢!

4

1 回答 1

0

如果实体不是 ComplexTypes,而是 EntityTypes(可以从它们自己的集合中检索),默认情况下它们不会被填充。你需要使用:

<host>/urlForResource?$expand=Property1,Property2

如果这不起作用,请检查您正在实现的 OData 的版本以及您正在使用的 WCF 数据服务的版本。如果您使用旧版本,则 $expand 可能不会在 WCF 数据服务中实现。

此外,在 WebApi 的 OData 服务中,必须添加一个 [EnableQuery] 属性以支持 $expand 等参数,寻找在 WCF DataServices 上启用查询选项的方法。

于 2014-12-06T01:39:48.203 回答