Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rest 如何从.NET代码方便地使用OData服务_Rest_Asp.net Web Api_Odata - Fatal编程技术网

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

Rest 如何从.NET代码方便地使用OData服务,rest,asp.net-web-api,odata,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://

是否有从.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();
}
班级人员
{
公共字符串名称{get;set;}
公共整数{get;set;}
}
void Main()
{
个人=
新ODataRequest()
.EndPoint(“http://server.com/personservice")
.AddHeader(“标题”、“值”)
.AsJson()
其中(p=>p.Name.EndsWith(“y”)&p.Age>21)
.Skip(10)
.采取(5)
.Send();
}
请忽略语法(我将端点相关的东西与查询相关的东西混合在一起),这只是为了传达这个想法

上面的代码应该自动使用$filter、$skip等表达式构建适当的OData查询字符串,并解析响应

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


谢谢

也许这段视频可以帮助您:

根据Padrus的回答,您正在寻找的库肯定是WCF数据服务。它拥有坚实的代码生成经验以及相当完整的LINQ提供程序。如果您想以最少的投资预先使用它,请尝试LINQPad()的最新beta,它内置了wcfds客户端。就我所知,没有任何东西可以与.NET相比


注意:WCF DS内置于Visual Studio中。如果您使用添加服务引用向导添加对OData服务的引用,您将获得我们的DLL。请注意,如果您使用的是VS 2012,您将获得对我们的NuGet包的引用,然后您可以按照维护所有其他NuGet依赖项的方式来维护这些包。如果您正在使用VS 2010,您仍然应该考虑添加NuGET包的引用,并使用NuGET更新更新的依赖关系。我只是觉得这个领域可能有新的东西。这部电影的拍摄日期毕竟是2010年……)这部电影有点老,但他使用的库(WCF数据服务客户端)仍在频繁发布更新。