3

可能重复:
LINQ-to-SQL 与存储过程?
Linq over 存储过程

使用 LINQ 比存储过程有什么优势?

4

2 回答 2

8

有很多:

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

  2. 部署- 使用存储过程,我们需要为存储过程提供额外的脚本,但使用 LINQ,所有内容都被编译到单个 DLL 中,因此部署变得容易。

  3. 类型安全- LINQ 是类型安全的,因此查询错误在编译时进行类型检查。编译时遇到错误而不是运行时异常真是太好了!

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

  5. 减少工作- 在 LINQ 之前,我花了很多时间构建 DAL,但现在我的 DataContext 是 DAL。我也使用过 OPF,但现在我有 LINQ,它附带多个提供程序和许多其他 3rd 方提供程序,让我从之前的观点中受益。

注意:如果您所做的只是简单的 INSERT、UPDATE 和 DELETE 语句 LINQ 是可行的方法(在我看来)并且所有优化都是为您完成的,对于更复杂的工作我会说坚持使用存储过程。

有关更多详细信息,请参阅:LINQ 与存储过程相比有什么优势?

于 2013-01-10T04:33:18.700 回答
0

如果你谷歌,你会发现一些与你的问题类似的问题。

你可以看到这个linq-to-sql-vs-stored-procedureslinq-over-stored-procedures

于 2013-01-10T04:36:38.687 回答