【问题标题】:How do I conviniently consume OData service from .NET code如何方便地从 .NET 代码中使用 OData 服务
【发布时间】:2013-04-11 12:52:15
【问题描述】:

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

这样的图书馆已经建成了吗?还是我一个人在这里?:)

谢谢!

【问题讨论】:

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


    【解决方案1】:

    也许这个视频可以帮助你:http://msdn.microsoft.com/en-us/data/gg591296.aspx

    【讨论】:

    • 谢谢,我已经看到了。只是想在这个领域可能会有一些新的东西。毕竟这部电影的日期是 2010 年.. =)
    • 电影有点老了,但是他使用的库(WCF数据服务客户端)还在频繁发布更新。
    【解决方案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 来更新依赖项。

    【讨论】:

      猜你喜欢
      • 2013-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-03
      • 2022-01-23
      • 2013-07-14
      • 1970-01-01
      相关资源
      最近更新 更多