可能重复:
LINQ-to-SQL vs stored procedures?
Linq over Stored Procedures
使用LINQ比存储过程有什么好处?
答案 0 :(得分:4)
有很多:
调试 - 调试存储过程非常困难,但由于LINQ是.NET的一部分,您可以使用visual studio的调试器来调试查询。
< / LI>部署 - 使用存储过程,我们需要为存储过程提供一个额外的脚本,但是使用LINQ,所有内容都会被编译到单个DLL中,因此部署变得很容易。
类型安全 - LINQ是类型安全的,因此在编译时会对查询错误进行类型检查。在编译而不是运行时异常时遇到错误真的很好!
内置安全性 - 在LINQ之前我首选存储过程的一个原因是它们强制使用参数,有助于减少SQL注入攻击。 LINQ to SQL已经参数化输入,这同样安全。
减少工作 - 在LINQ之前,我花了很多时间构建DAL,但现在我的DataContext是DAL。我也使用过OPF,但是现在我有LINQ,它附带了多个提供商和许多其他第三方提供商,从我之前的观点中获益。
注意:如果您正在做的只是简单的INSERT,UPDATE和DELETE语句LINQ是可行的方式(在我看来)并且所有优化都是为您完成的,因为更复杂我会坚持使用存储过程。
有关详细信息,请参阅:What is the advantage of LINQ over stored procedures?
答案 1 :(得分:0)
如果你谷歌,你会发现一些与你的问题类似的问题。
您可以看到此linq-to-sql-vs-stored-procedures,linq-over-stored-procedures