OData适用于大型MVC5 / Web API应用程序

时间:2015-03-28 13:10:27

标签: asp.net-mvc asp.net-web-api odata breeze restier

我正在为我的Web应用程序使用以下堆栈MVC5 + WebAPI 2.2 + EF6 + AngularJS。今天,我尝试将ODataAngular BreezeJS合并到我的应用程序中,它适用于其中一个实体。

目前,我有大约45个表,可转换为45个模型类。

在Web API中,我可能只有5-10个控制器来处理45个模型的CRUD操作,使用基于我传递的变量的开关语句,如entityNameoperationName

但是,在OData中我需要由VS控制的45个控制器。有没有什么方法可以使用OData的好处,例如querying/paging/patching,而不必为每个模型类创建一个控制器?

2 个答案:

答案 0 :(得分:4)

您是否使用Entity Framework?如果是这样,您可以尝试使用RESTier。 RESTier 构建在Web API OData 之上,它只需要一个控制器就可以使所有基本的CRUD(包括查询)都能正常工作。

您可以从教程http://odata.github.io/RESTier/Getting-Started-Part-1/中了解更多信息,Northwind的示例位于https://github.com/OData/RESTier/tree/master/src/Microsoft.Restier.Samples.Northwind

答案 1 :(得分:0)

我为电子商务公司的管理系统做了这个。可能大约有20个表和相关的api控制器,其中一些表有10,000个记录,所有控制器都启用了odata位。到目前为止,对于Azure SQL和网站来说,这似乎很好。我正在为每个模型/实体使用一个控制器,你为什么反对这样做?