我尝试使用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之外发言?
答案 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);