如何在ASP.NET中创建OData v2端点?

时间:2016-03-24 21:38:43

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

我尝试使用ASP.NET Web API实现OData端点。我从nuget安装了 Microsoft ASP.NET Web API 2.2 for OData 1-3 包,我认为我运行的是OData v3端点。

$元数据:

ObjectInputStream

WebApiConfig.cs:

<edmx:DataServices xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:DataServiceVersion="3.0" m:MaxDataServiceVersion="3.0">

我刚发现我的目标客户端应用程序只能支持OData v2。有没有办法将Web API配置为在OData v2中代替OData v3或者除OData v3之外发言?

2 个答案:

答案 0 :(得分:1)

在模型构建器上设置服务的版本和最大版本:

Route::get('/', ['as' => 'home', 'uses' => 'DogsController@index']);
Route::get('/create', ['as' => 'create', 'uses' => 'DogsController@create']);
Route::resource('dogs', 'DogsController');

答案 1 :(得分:0)

您需要设置DataService(OData版本),Edm(CSDL版本)和Edmx的版本:

var version = Microsoft.Data.Edm.Csdl.CsdlConstants.EdmxVersion2;
var builder = new ODataConventionModelBuilder
{
   // OData V2.0
   DataServiceVersion = version,
   MaxDataServiceVersion = version
};
// Generate Model
var edmModel = builder.GetEdmModel();
// CSDL Version 2.0
edmModel.SetEdmVersion(version);
// Set Edmx Version
edmModel.SetEdmxVersion(version);