我正在构建我的新v4服务,一切顺利,直到我为新模型/实体添加了一个新控制器,并在启动网站进行测试运行时出现此错误。
控制器似乎正确编码,就像其他控制器一样。
路径模板'客户'关于行动' GetFeed'在控制器' CustomersOData'不是有效的OData路径模板。未找到该细分受众群的资源'客户'
这对地球意味着什么?
答案 0 :(得分:4)
Web API属性路由方案中发生此错误。在运行HttpConfiguration的初始化程序时,Web API属性路由将检查所有找到的ODataControllers的所有ODataRouteAttribute。
您提到在添加新模型/实体后发生错误,所以我猜您可能有两个Edm模型:
ModelA, ModelB
和EntitySet"客户"仅在其中一个模型中,例如ModelA。
此外,您可能会为新添加的模型提供以下代码:
config.MapODataServiceRoute("...", "...", ModelB);
启动时,Web API会找到属性:
[ODataRoute("Customers")]
public IHttpActionResult Get()
{
...
}
但是,Web API无法找到"客户"在ModelB中设置的实体。
我认为你可以通过将所有内容放入一个模型来解决它。
答案 1 :(得分:2)
如果在启动时发生这种情况,请检查您是否在启动期间将您的客户模型类型添加到模型构建器。
builder.EntitySet<CustomerModel>("Customers");
听起来好像为新控制器枚举了属性映射,但它无法将Customer模型类型映射回实体集。
注意:Q / A我几乎立刻想出来了,但是我在这里发帖是因为我可能会再次这样做而忘记我做错了什么!