是否有从。net代码中使用OData服务的最佳实践方法/库?这样我就不必手动构建查询字符串和解析响应了?
我的设想是这样的:
class Person
{
public string Name {get; set;}
public int Age {get; set;}
}
void Main()
{
Person person =
new ODataRequest<Person>()
.EndPoint("http://server.com/personservice")
.AddHeader("header", "value")
.AsJson()
.Where(p => p.Name.EndsWith("y") && p.Age > 21)
.Skip(10)
.Take(5)
.Send();
}
请忽略语法(并且我将端点相关的东西与查询相关的东西混合在一起),这只是为了传达思想。
上面的代码应该自动使用$filter, $skip等表达式构建适当的OData查询字符串,并解析响应。
这种类型的库已经建立了吗?还是我一个人在这里?:)
谢谢!
根据Padrus的回答,您正在寻找的库绝对是WCF Data Services。它具有可靠的代码生成经验以及相当完整的LINQ提供程序。如果您想以最少的投资提前试用它,请尝试LINQPad的最新测试版(http://www.linqpad.net/Beta.aspx),它内置了WCF DS客户机。据我所知,没有任何其他的东西可以与。net相媲美。
注意:WCF DS是内置于Visual Studio中的。如果您使用添加服务引用向导来添加对OData服务的引用,您将获得dll。请注意,如果你使用的是VS 2012,你将获得对我们的NuGet包的引用,然后你可以像维护其他NuGet依赖一样维护它。如果你使用的是VS 2010,你仍然应该考虑添加对NuGet包的引用,并使用NuGet来更新依赖项。