WCF DataServiceQuery用于派生类型

时间:2014-02-12 10:51:05

标签: wcf wcf-data-services

我有一个基本实体和一个派生实体,带有一个额外的布尔属性。我的WCF数据服务公开了基本实体的EntitySet。我可以在浏览器中查询它:

http://myserver/myservice/BaseSet/Namespace.Derived()?$filter=(BoolProp eq false)

我得到了Derived类型的对象集合。一切都好。

在我的客户端,我有一个采用DataServiceQuery的网格。所以我构建了我的查询:

var query = context.CreateQuery<Proxy.Derived>("BaseSet");

但是当我尝试过滤派生属性时,它会返回错误。当我检查它在请求中使用的URL时,它缺少我的派生类型的块,即它看起来像:

http://myserver/myservice/BaseSet()?filter=(BoolProp eq false)

构建DataServiceQuery的正确方法是什么,我可以使用它来查询派生类型的属性?

1 个答案:

答案 0 :(得分:0)

原来我需要的是扩展entitySetName参数以包含我的派生类型:

var query = context.CreateQuery<Proxy.Derived>("BaseSet/Namespace.Derived")();

参数的名称并不好。现在我真的懒得阅读所做的文档告诉我entitySetName应该是“解析为URI的字符串”。不确定这对大多数人有帮助,但我应该早点检查一下。