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

asp.net – 存储过程与脚手架

发布时间:2020-12-16 09:55:47 所属栏目:asp.Net 来源:网络整理
导读:我使用的是ASP.NET Core 1.0,网站很大(每小时约有5,000名访问者).我已多次阅读过存储过程非常快速和安全(就SQL注入而言).但代码首先EF如果这么容易,我想使用它,但CRUD方法是隐藏的. 在性能和安全性方面,使用Scuffolding和EF over SP的缺点(如果有的话)是什么
我使用的是ASP.NET Core 1.0,网站很大(每小时约有5,000名访问者).我已多次阅读过存储过程非常快速和安全(就SQL注入而言).但代码首先EF如果这么容易,我想使用它,但CRUD方法是隐藏的.

在性能和安全性方面,使用Scuffolding和EF over SP的缺点(如果有的话)是什么?

解决方法

我喜欢在编写存储过程和在EF中编写查询之间做出选择,类似于(在某种程度上)汇编程序编程和编写在托管环境(如.NET和 Java)中运行的程序之间的差异.为托管环境编写的应用程序总是比使用汇编语言编写的应用程序慢,但另一方面,使用托管语言编写复杂的应用程序通常要容易得多(因此也更便宜).使用EF linq,您可以更快地编写查询,它们通常比它们的sql更简单,因此更容易维护.其他重要因素是应用程序快速变化,新功能正在被添加,旧功能正在被重写,以及此流程表和其他数据库结构的变化.发生这种情况时,您的SP无法再正常工作.你什么时候知道应该修复它们?只有当你运行它们时.您何时知道需要修复EF查询,因为表更改?在编译期间.而且性能下降了?一般来说,现在我们拥有快速且相当便宜的机器,所以我们并不在乎这么多.我检查了一次EF查询的执行时间及其sql等价物 – 普通sql使我的执行时间减少了5% – 这对我来说没什么.而且由于sql查询要复杂得多,因此很有可能以错误的方式编写查询,这样就不必再慢了.最后,如果您需要在应用程序中为某些复杂查询提供非常出色的性能 – 将其写为SP并使用EF轻松执行.

当涉及到安全性时,EF查询生成器总是使用sql参数,因此它们与SP一样安全地进行sql注入.

(编辑:李大同)

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

    推荐文章
      热点阅读