我有一个WCF数据服务,它公开了一个Entity Framework数据库上下文和EntitySet,
public class DatabaseService : DataService<DatabaseContext>
{
// This method is called only once to initialize service-wide policies.
public static void InitializeService(DataServiceConfiguration config)
{
// TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.
// Examples:
config.SetEntitySetAccessRule("People", EntitySetRights.AllRead);
// config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
}
}
是否可以以允许我使用完整URI动态构建查询的方式使用此服务?
IE中。我将使用的URI是
http://localhost:1353/DatabaseService.svc/People?$ filter(我的过滤器)
我不希望我的任何查询都被硬编码,只需通过更改基于字符串的URI动态调用。
非常确定它可能,但是实现简单还是需要很多代码,比如WCF服务的完整动态代理?
我以前只用普通的SOAP服务做过这样的事情。
修改
更具体地说,我希望能够像这样有效地做点什么,
IEnumerable<People> peopleResults = new DataServiceQuery("http://localhost:1353/DatabaseService.svc/People?$filter (my filter here)")
将结果填充到我的列表中,而客户端除了完整的URI(包括过滤器和所有内容)之外不必知道任何内容。