启动时出现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几乎立刻发现了这个问题,但我在这里发帖是因为我可能会再次这样做而忘记我做错了什么!