可能重复:
LINQ to SQL与存储过程
存储过程上的Linq
与存储过程相比,使用LINQ的优势是什么?
有很多:
-
调试-调试存储过程确实非常困难,但LINQ是其中的一部分。NET中,您可以使用visualstudio的调试器来调试查询。
-
部署-对于存储过程,我们需要为存储过程提供一个额外的脚本,但对于LINQ,所有内容都被编译到一个DLL中,因此部署变得很容易。
-
类型安全-LINQ是类型安全的,因此查询错误在编译时进行类型检查。编译时遇到错误而不是运行时异常真的很好!
-
内置安全-在LINQ之前,我更喜欢存储proc的一个原因是它们强制使用参数,有助于减少SQL注入攻击。LINQ to SQL已经对输入进行了参数化,这同样安全。
-
工作量减少-在LINQ之前,我花了很多时间构建DAL,但现在我的DataContext就是DAL。我也使用过OPF,但现在我有了LINQ,它附带了多个供应商和许多其他第三方供应商,让我从以前的观点中受益。
注意:如果您所做的只是简单的INSERT、UPDATE和DELETE语句,那么(在我看来(LINQ就是最好的选择,并且所有的优化都是为您完成的,对于更复杂的工作,我认为应该坚持使用存储过程。
有关更多详细信息,请参阅:LINQ相对于存储过程的优势是什么?
如果你在谷歌上搜索,你会发现一些SO问题与你的问题相似。
您可以看到这个linq到sql vs存储过程,linq over存储过程