我跟着this教程来创建WebAPI REST服务。没有注册非OData HTTP路由
之后,我可以通过指向http://baseaddress/api/Contacts
加载所有联系人列表。
然后添加以下代码中的WebApiConfig.cs方法Register
为了启用的OData端点:
config.Count().Filter().OrderBy().Expand().Select().MaxTop(null);
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Contact>("Contacts");
config.MapODataServiceRoute(
routeName: "OData",
routePrefix: "odata",
model: builder.GetEdmModel());
而且还增加了[EnableQuery]
参数上Contact.GetContacts()
方法。这样,我可以查询这样的特定联系人:
http://baseaddress/odata/Contacts?$filter=startswith(Name,'A')
它的作品就像魅力。
不幸的是,当我把[EnableQuery]
,该端点的WebAPI停止工作,而不是显示以下错误:
No non-OData HTTP route registered.
in System.Web.OData.Extensions.HttpConfigurationExtensions.GetNonODataRootContainer(HttpConfiguration configuration)
in System.Web.OData.Extensions.HttpRequestMessageExtensions.GetRootContainer(HttpRequestMessage request, String routeName)
in System.Web.OData.Extensions.HttpRequestMessageExtensions.CreateRequestScope(HttpRequestMessage request, String routeName)
in System.Web.OData.Extensions.HttpRequestMessageExtensions.CreateRequestContainer(HttpRequestMessage request, String routeName)
...
我应该怎么做才能解决这个问题?
对此有任何答案?我遇到了同样的问题。 –
@MichaelBowman不幸的是没有 – Teejay