我有一个基本实体和一个派生实体,带有一个额外的布尔属性。我的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的正确方法是什么,我可以使用它来查询派生类型的属性?
答案 0 :(得分:0)
原来我需要的是扩展entitySetName参数以包含我的派生类型:
var query = context.CreateQuery<Proxy.Derived>("BaseSet/Namespace.Derived")();
参数的名称并不好。现在我真的懒得阅读所做的文档告诉我entitySetName应该是“解析为URI的字符串”。不确定这对大多数人有帮助,但我应该早点检查一下。