我使用Visual Studio 2015 Web API 2项目和脚手架控制器(“Microsoft OData V4 Web API控制器使用实体框架”脚手架)创建了一个非常原始的OData webservice。OData V4属性访问
我只有一个实体在我的模型中设置:“书籍”。 “Book”实体具有特权“标题”字符串属性。
我推测脚手架控制器将服务于所有合法的OData v4请求,但似乎并非如此?
http://localhost:xxxx/OData/Books作品(枚举所有属性的所有书籍 - 包括“名称”属性)
http://localhost:xxxx/OData/Books(1)作品(列举了第一本书的所有属性,包括“标题”属性)
http://localhost:xxxx/OData/Books(1)/Title做不起作用 - 我得到一个“尽管请求是100%OData v4投诉,但没有发现路由约定为模板'〜/ entityset/key/property'错误选择OData路径的操作?
它为什么不起作用?它不应该工作吗?需要什么才能使其工作?
非常感谢您的链接 - 现在我想我明白了。是否正确地说,为了处理对一个实体的任何单一属性的请求,该实体的控制器必须实现一个单独的专门操作方法,形式为“Get From (...) “为每一个可用的财产? –
是的,只要你在实体属性中使用内置的路由约定。作为替代方案,您可以编写自己的路由约定,该约定支持将属性名称作为字符串传递给控制器方法,但这要做得更多。 – lencharest