启动时出现OData v4错误:找不到该段’Whatever’的资源

我正在构建我的新v4服务,一切顺利,直到我为新模型/实体添加了一个新控制器,并在启动网站进行测试运行时出现此错误。

控制器似乎正确编码,就像其他控制器一样。

控制器“CustomersOData”中操作“GetFeed”上的路径模板“Customers”不是有效的OData路径模板。 未找到“客户”细分的资源。

这对地球意味着什么?

Web API属性路由方案中发生此错误。 在运行HttpConfiguration的初始化程序时,Web API属性路由将检查所有找到的ODataControllers的所有ODataRouteAttributes。

您提到在添加新模型/实体后发生了错误,因此我猜您可能有两个Edm模型:

ModelA, ModelB 

而EntitySet“Customers”仅在其中一个模型中,例如ModelA。

此外,您可能会为新添加的模型提供以下代码:

 config.MapODataServiceRoute("...", "...", ModelB); 

启动时,Web API会找到以下属性:

 [ODataRoute("Customers")] public IHttpActionResult Get() { ... } 

但是,Web API无法在ModelB中找到“Customers”实体集。

我认为你可以通过将所有内容放入一个模型来解决它。

如果在启动时发生这种情况,请在启动期间检查是否已将Customers模型类型添加到模型构建器。

 builder.EntitySet("Customers"); 

听起来好像为新控制器枚举了属性映射,但它无法将Customer模型类型映射回实体集。

注意:Q / AI几乎立刻发现了这个问题,但我在这里发帖是因为我可能会再次这样做而忘记我做错了什么!