我已将OData V4添加到我的Web Api 2应用程序中。 在默认路由之前的WebApiConfig寄存器方法中注册OData路由:
//defining the routes for our OData service
config.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: "odata",
model: GenerateEdmModel());
private static IEdmModel GenerateEdmModel()
{
var builder = new ODataConventionModelBuilder();
builder.EntitySet<Media>("Media");
return builder.GetEdmModel();
}
MediaController.cs
[EnableQuery]
public IQueryable<ApiMedia> GetMedia(ODataQueryOptions<Media> query )
{
*querying and returning media*
}
但是当我致电localhost:80880/odata/media
时
回复的回复说:
无法找到资源。 请求的网址:/ odata / media
调用localhost:80880/odata
会返回:
{
"@odata.context":"http://localhost:80880/odata/$metadata","value":[
{
"name":"Media","kind":"EntitySet","url":"Media"
}
]
}
所以这里有什么不对吗? (它是否在寻找名为odata的控制器?) 我按照http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/odata-v4/create-an-odata-v4-endpoint
上的教程进行了操作答案 0 :(得分:1)
你不能相信,但我应该输入 mysite.com/odata/Media 而不是 mysite.com/odata/media
答案 1 :(得分:0)
您将很快找到此功能。我在找2天。大写网址请求取决于实体集名称
builder.EntitySet<Media>("Media"); // if the changed to "media" will work !