Asp.net web api 将WebApi OData v3项目升级为OData v4 我是基于EntityFramework、WebApi和ODATA.的开发项目中的一员。

Asp.net web api 将WebApi OData v3项目升级为OData v4 我是基于EntityFramework、WebApi和ODATA.的开发项目中的一员。,asp.net-web-api,odata,Asp.net Web Api,Odata,我在ODataV3最新时启动了这个项目,并创建了许多从EntitySetController派生的控制器 我已尝试使用oData团队的最新版本升级我的项目以支持oData v4 v4 Nuget包中有许多名称空间和其他更改 我认为我已经解决了这些问题,但是在v4中,EntitySetController似乎已经从代码库中删除 升级代码的最佳方法是什么 不推荐使用的EntitySetController类的代码是否可用,以便我将其带到项目中?对于更新EntitySetController类,建议如

我在ODataV3最新时启动了这个项目,并创建了许多从EntitySetController派生的控制器

我已尝试使用oData团队的最新版本升级我的项目以支持oData v4

v4 Nuget包中有许多名称空间和其他更改

我认为我已经解决了这些问题,但是在v4中,EntitySetController似乎已经从代码库中删除

升级代码的最佳方法是什么


不推荐使用的EntitySetController类的代码是否可用,以便我将其带到项目中?

对于更新EntitySetController类,建议如下:

a。从ODataController而不是EntitySetController继承

b。从操作中返回IQueryable、SingleResult、IHttpActionResult,而不是void、user类型、HttpResponseMessage和CLR类型


希望能有所帮助。

谢谢您的回复。我决定创建一个新的WebApi项目,并使用您的建议重建所有现有控制器。不幸的是,我无法确定要安装的一组正确的Nuget软件包来支持OData V4。ODataV4是否仍然要求WebstackNightly上的Web API 2.2的预发布版本?是否存在ODATA V4在任何地方所需的NuGET软件包的名称和来源的列表?仅在WebAPI 2.2之上的ODATA V4实现的中间(使用RTM版本的包)。注意:ODataV4有一些奇怪的行为。与$metadata一样,查询结果(使用$select/$expand)也只能使用JSON格式。DataJS/BreezeJS的当前版本(目前)不兼容V4,无法协同工作。(预期HTTP头的差异,WebAPI控制器/格式化程序使用的差异)。