【问题标题】:Convert "Linq to EF" to "Linq to Sql" in .NET在 .NET 中将“Linq to EF”转换为“Linq to Sql”
【发布时间】:2012-01-12 12:33:54
【问题描述】:

我使用 Linq to Entity Framework 创建了一个项目。但我读过 Linq to Sql 比 EF 快。那么我可以将我的项目从 Linq 转换为 EF 再将 Linq 转换为 Sql 吗?

【问题讨论】:

  • 那为什么不使用 ADO .NET?它是最快的!还值得一提的是,实体框架是未来; MS 不再投资于 LINQ to SQL,尽管我认为它尚未正式弃用或放弃支持。
  • 就像 Yuck 一样,我建议回到 LINQ to SQL,因为 MS 只是维护 LINQ to SQL 而没有添加新功能(甚至不是所有的错误都得到修复)。你可以期待 EF 在未来几年变得更快更好,而 L2S 不会改变。我确实喜欢 L2S,并且它仍然具有一些即使是最新的 EF 版本也缺少的功能,但是对于新项目,请务必使用 EF。您是否测试过 EF 对您来说是否太慢?迁移到 L2S 对我来说似乎是过早的优化。

标签: .net linq-to-sql linq-to-entities


【解决方案1】:

我不认为“Linq to Sql 比 EF 更快”是一个普遍正确的说法。如果数据库通信存在性能问题,我会首先开始调查 SQL 端,看看是否可以改进存储/查询数据的方式(例如,必要时添加索引)。

否则翻译项目的努力可能不会得到回报。

【讨论】:

  • 我已经看到 L2S 产生更好的 SQL 查询,在 SQL Server 上运行得更快(尤其是当查询变得非常大和复杂时),并且表达式树到 SQL 的转换过程更快。我仍然同意切换到 LINQ to SQL 不是一个好主意。
【解决方案2】:

出于长期可维护性的原因,您可能不想从 EF 转到 Linq2SQL,因为 Microsoft 已经有效地放弃了 Linq2SQL 的新开发工作,从 .NET 4 开始将该项目折叠到 EF 中。仅仅为了可能看到一些未经证实的性能提升声明而尝试转换为不太现代和不太积极开发的东西是不值得的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-02
    • 2016-08-29
    • 1970-01-01
    • 2017-10-06
    • 2020-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多