【问题标题】:Is OData suitable for a big MVC5/WebAPI applicationOData 是否适合大型 MVC 5/Web API 应用程序
【发布时间】:2015-06-01 18:38:18
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    您使用实体框架吗?如果是这样,您可以尝试使用 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

    【讨论】:

    • 看起来很酷。但由于它仍处于预览版,我会等待它的第一个主要版本。
    【解决方案2】:

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

    【讨论】:

    • 截至目前,我们有 45 个实体,随着我们的扩展,我们可能会增加 15-20 个,而我对处理 60 个控制器感到不舒服。另一个问题是我需要在 Angular 中使用 60 个不同的端点,而在 WebAPI 中我可以使用 5-10
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 2015-11-11
    相关资源
    最近更新 更多