如何从.NET代码中方便地使用OData服务

时间:2013-04-18 12:02:31

标签: rest asp.net-web-api odata

是否有从.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查询字符串,并解析响应。

这样的图书馆已经建成了吗?或者我在这里独自一人?:)

谢谢!

2 个答案:

答案 0 :(得分:2)

根据Padrus的回答,您正在寻找的库肯定是WCF数据服务。它具有扎实的代码生成经验以及相当完整的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来更新未来的依赖关系。

答案 1 :(得分:1)

也许这段视频可以为您提供帮助:http://msdn.microsoft.com/en-us/data/gg591296.aspx