使用LINQ相比存储过程有哪些优势?

3

1
你尝试过使用Google吗? - Usman
1
请问 LINQ to SQL 和存储过程,在编写数据访问层时哪个更好? - Sumit
2个回答

8
有很多方面:
  1. 调试 - 调试存储过程非常困难,但由于LINQ是.NET的一部分,您可以使用Visual Studio的调试器来调试查询。

  2. 部署 - 对于存储过程,我们需要提供一个额外的脚本来处理存储过程,但是对于LINQ,所有内容都编译到单个DLL中,因此部署变得更加容易。

  3. 类型安全 - LINQ是类型安全的,因此在编译时对查询错误进行类型检查。在编译时遇到错误比运行时异常要好得多!

  4. 内置安全性 - 我之前喜欢存储过程的原因之一是它们强制使用参数,有助于减少SQL注入攻击。LINQ to SQL已经参数化输入,同样安全。

  5. 减少工作量 - 在使用LINQ之前,我花费了很多时间构建DALs,但现在我的DataContext就是DAL。我也使用过OPFs,但现在我有了带有多个提供程序和许多其他第三方提供程序的LINQ,使我受益于以前的优点。

注意:如果您只是进行简单的INSERT、UPDATE和DELETE语句,那么LINQ是最好的选择(在我看来),并且所有优化都已经为您完成了。对于更复杂的工作,我建议使用存储过程。

有关更详细的信息,请参阅:LINQ相对于存储过程的优势是什么?


我们如何管理一个复杂的存储过程,例如一个存储过程调用多个存储过程。 - Ullas Mathew
你可以在这里找到更多关于此的信息:http://stackoverflow.com/questions/1716152/stored-procedure-calls-multiple-stored-procedures - Vishal Suthar
@VishalSuthar OPF是什么意思?我搜索了这个词,但没有找到任何有意义的结果。 - asd123ea
1
@asd123ea 是“Origin-Private File System”的缩写,它是一个提供浏览器端持久存储的API。 - Vishal Suthar

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接