BreezeJS - 有什么方法可以将旧样式 'One controller to rule them all' 与 OData Web API 一起使用吗?

BreezeJS - Is there any way to use old style 'One controller to rule them all' with OData Web API?

我想通过 OData Web API 公开 SQL 服务器视图,但我不想为每个视图创建单独的控制器,因为它们太多了,它们只会接受所有视图的 GET 动词。

我以为我可以使用 BreezeController 来实现这一点,但看起来我不能,因为它现在已经过时了(具有 BreezeController 属性的包被标记为过时)。

有没有什么方法可以使用与 BreezeJS 一起使用的 OData Web API 来实现这一点?

[BreezeController] 属性不会过时。事实上,它是您在 Breeze 示例中看到的 "happy path" Web API 控制器的核心。我想知道是什么让你有不同的想法?你用的是什么包?

我指的是 ASP.NET 网络 API!

ASP.NETWebAPIOData是另一回事。尽管名称中有 "Web API",但这几乎是一种完全不同的服务器开发方法,具有自己的行为和有线格式。它不使用 [BreezeController] 属性,而且从来没有。

我不确定你所说的“view”是什么意思,“separate controllers for每个视图”。我想你的意思是我所说的 "type"。例如,在 OData 中,您希望 Product 实体类型有一个 "Product" 端点。

AFAIK,Web API OData 方法需要每个类型 控制器 。这就是微软的Mike Wasson says in his tutorial。他写道...

A controller is a class that handles HTTP requests. You create a separate controller for each entity set in your OData service.

BreezeJS 也支持 Web API OData ... 尽管有 limitations imposed by the current Microsoft implementation 可能会让您暂停。

We are working through these with the OData team and hope to have better news in the coming months.