asp.net-mvc – 通过OData和WebAPI公开大数据模型
我有一个约有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的好处是对每个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协议公开数据库记录更新操作之前三思而后行,但我们对该方法没有任何技术问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-4 – 如何输出Request.CreateResponse方法的js
- asp.net – 使用实体框架选择所有行
- asp.net – 在IIS URL Rewrite 2中重新处理重写的URL时出错
- asp.net-mvc-3 – 用于ASP.NET MVC的Razor View Engine的源
- 如何在ASP.NET Core自定义中间件中读取Request.Body和Respo
- AntiForgery令牌使用ASP.NET5 Web API而不使用NET46上的Sys
- asp.net-core – db ASP.NET Core中的临时保存密码
- asp.net LinkBut??ton HyperLink问题
- WCF,ASP.NET成员资格提供者和认证服务
- asp.net – InvalidOperationException Nullable对象必须具