加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 通过OData和WebAPI公开大数据模型

发布时间:2020-12-16 03:23:25 所属栏目:asp.Net 来源:网络整理
导读:我有一个约有200个表的EF模型,其中75个我希望通过REST在MVC应用程序中公开.我首先添加了一个WCF数据服务(WCF-DS),将其指向EF上下文,然后bam,我将整个数据库映射到REST URI,并在大约2分钟内完全支持OData语法. 接下来,我尝试使用WebAPI创建相同的REST URI空间
我有一个约有200个表的EF模型,其中75个我希望通过REST在MVC应用程序中公开.我首先添加了一个WCF数据服务(WCF-DS),将其指向EF上下文,然后bam,我将整个数据库映射到REST URI,并在大约2分钟内完全支持OData语法.

接下来,我尝试使用WebAPI创建相同的REST URI空间.当我尝试添加一个WebAPI OData Controller时,它首先要求的是一个Model Class,当我完成创建控制器(并将所有必需的ODataConventionModelBuilder代码复制到WebApiConfig中)时,我只有一个REST端点!我现在的印象是,WebAPI并不适合用很多暴力来暴露整个EF模型.

所以我的问题:

>我是否错过了将一堆WebAPI端点一次性映射到EF模型的方法?

(也许在生成我的EF模型时构建所有WebAPI代码的T4模板?)
>有没有令人信服的理由考虑WebAPI与WCF-DS公开大型URI域?

(有人说WebAPI的好处是对每个MVC / HTTP请求进行细粒度控制,但如果目标是符合OData规范,这似乎适得其反.我不确定我想拥有75个控制器和1000行代码会诱使我的开发人员改变一个实体的行为,导致其他实体的行为不同.)

(对于交叉问题,例如安全性,缓存或性能限制,WCF-DS似乎具有足够的配置能力,可以使用拦截器及其DataServiceConfiguration类.是否有任何WebAPI功能可以在这里做得更好?)

谢谢.

更新:我发现Julie Lermon的这篇文章有点帮助:http://msdn.microsoft.com/en-us/magazine/dn201742.aspx

解决方法

由于我只使用WCF DS公开了EF模型,因此无法评论Web API问题.但是我们从来没有真正有理由用我们的模型用Web API替换WCF DS,因为正如你也注意到的那样,EF和WCF DS一起玩的很好,你基本上可以免费获得OData源.在客户端,情况有所不同:我们开始尝试模仿Linq到实体框架的WCF数据服务客户端,但是有很多限制,我最终编写了自己的OData客户端(你可以读到是什么让我们感到不快使用WCF DS客户端部分 here).

回到服务器端:我们的域很大,我们有80个表,有近1000列.我们甚至使用批量更新(OData模拟事务)支持所有CRUD操作.虽然由于设计原则,我建议在通过OData协议公开数据库记录更新操作之前三思而后行,但我们对该方法没有任何技术问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读