我想通过OData Web API公开SQL Server Views,但我不想为每个视图创建单独的控制器,因为它们太多而且它们只接受所有视图的GET动词。
我以为我可以使用BreezeController来实现这一点,但它看起来我不能,因为它现在已经过时了(具有BreezeController属性的包被标记为过时)。
有没有办法通过适用于BreezeJS的OData Web API实现这一目标?
答案 0 :(得分:2)
[BreezeController]
属性未过时。事实上,它是您在Breeze示例中看到的“快乐路径”Web API控制器的核心。我想知道是什么导致你不这么认为?你用的是什么包?
我指的是 ASP.NET Web API !
ASP.NET Web API OData 是另一回事。尽管名称中包含“Web API”,但这与使用自己的行为和有线格式的服务器开发几乎完全不同。它不使用[BreezeController]
属性,也从不使用。
我不确定你的短语“ view ”是什么意思,“每个视图的单独的控制器”。我想你的意思是我称之为“类型”。例如,在OData中,您期望Product
实体类型的“Product”端点。
AFAIK, Web API OData 方法需要单独的控制器/ 。这就是微软的Mike Wasson says in his tutorial。他写道......
控制器是一个处理HTTP请求的类。您可以为OData服务中的每个实体集创建一个单独的控制器。
BreezeJS也支持 Web API OData ......虽然有limitations imposed by the current Microsoft implementation可能会让您暂停。
我们正在与OData团队合作,希望在未来几个月内有更好的消息。