【问题标题】:What is Best way Sql Raw Queries or Linq什么是 Sql 原始查询或 Linq 的最佳方式
【发布时间】:2014-04-07 15:20:00
【问题描述】:

我更熟悉 SQL 原始查询。大多数时候,我使用存储过程来执行复杂的查询,插入、删除、更新和选择一条记录是通过使用简单实体框架方法和 Linq 查询来完成的。使用 Linq 和 SQL Row 查询的优缺点是什么?最佳做法是什么。

【问题讨论】:

标签: c# sql stored-procedures linq-to-sql linq-to-entities


【解决方案1】:

SQL 几乎总是(很多)更快,因为它针对返回特定数据集进行了高度优化。它使用复杂的索引来管理知道在哪里寻找能够执行此操作的数据。然而,这通常也取决于您的数据库维护。例如,您可以通过向数据库添加索引来加快数据库搜索的速度,因此如您所见,如果您想优化性能,SQL 比简单地编写存储过程需要更多的工作。

另一方面,与 SQL 存储过程相比,Linq 实现起来要快得多,后者往往需要更长的时间来编写并且不需要您对数据执行维护。就我个人而言,我发现 SQL 难以阅读,而 Linq 和编程代码对我来说很自然。

因此我会说 SQL 更快更繁琐,而编程方法更慢但更容易实现。

如果您正在处理小型数据集,您可能会使用 Linq,但如果您使用大型数据库 SQL 几乎总是要走的路。

【讨论】:

  • 另外不要忘记并不是所有的事情都可以在 LINQ 中完成。我使用 EF 完成 80% 的工作,但我经常调用存储过程来执行我在 LINQ 中无法执行的操作。诸如使用没有 LINQ 表示的复杂构造更新分区或 SQL 之类的东西。或者 - 咳嗽,可悲的是 - 暗示。 EF 甚至不支持锁定提示......真可惜。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-12
  • 1970-01-01
  • 2010-10-14
  • 1970-01-01
  • 1970-01-01
  • 2019-10-21
相关资源
最近更新 更多