【问题标题】:SQL Database best extractionSQL 数据库最佳提取
【发布时间】:2015-10-08 14:06:35
【问题描述】:

在从 SQL 数据库中提取数据时,我总是将 SQL 命令嵌入到 C# 代码中

new SqlCommand(SELECT * from blah blah WHERE blah blah)

最近开始将 LINQ 用于其他任务,想知道获取所需数据的最佳方法是什么...

我应该只使用 SQL 提取我需要的所有表,然后使用 LINQ 来优化数据吗?

还是别的什么?

【问题讨论】:

  • 这个答案可能会因为过于主观(确实如此)而被锁定,但在此之前:绝对不要这样做:我应该只使用 sql 来提取我需要的所有表,然后之后使用 LINQ 优化数据。答案视情况而定——它是一个商业项目吗?学习 LINQ 是否存在风险/成本?等
  • 确实,不要造成这么大的负载。使用高性能存储过程,然后在需要时进行改进!
  • Linq 是一个很棒的工具,但作为任何编程工具,它在某些情况下会大放异彩,在某些情况下它是一场噩梦。根据经验,如果您的数据库很大,真的很大,您不希望将其泵入应用程序中的对象并将 linq 应用于它。如果你的数据基础不是臃肿的 linq+ORM 会产生奇迹
  • @markpsmith 抱歉,有点困惑学习 linq 的风险和成本是什么?你的意思是培训等吗?
  • 如果您告诉您的老板,由于您正在学习一项新技术,这项工作将需要多花 2 周的时间,那么这笔额外费用(即支付给您的费用)是否可以接受?恕我直言,使用关键业务系统作为 LINQ 实验的测试场存在风险(每个人都会犯错!)

标签: c# sql linq


【解决方案1】:

这取决于您使用的是哪种 Linq。

如果您使用的是 Linq to SQL,那么它实际上会为您编写 SQL 语句,但否则您将需要使用带有硬编码语句或存储过程的 SqlCommand。

也许是时候开始考虑使用像 Pico、EntityFramework 或 NHibernate 这样的 ORM 了?

【讨论】:

    猜你喜欢
    • 2015-08-17
    • 1970-01-01
    • 2018-02-23
    • 2010-12-01
    • 2020-08-22
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多