gpt4 book ai didi

.net - Entity Framework 和 .NET 4.0 的 LINQ to SQL 之间有什么区别?

转载 作者:行者123 更新时间:2023-12-03 05:45:37 25 4
gpt4 key购买 nike

我正在检查2nd edition of Professional ASP.NET MVC并实现EF取代LINQ to SQL。我从第一本书就熟悉了 LINQ to SQL,但对 EF 一无所知。无论如何,在阅读代码时,除了名称之外,似乎没有任何变化。相同的旧存储库类,相同的旧函数。

我做了一些研究。我知道LINQ不仅限于SQL。此外,EF 不限于 Microsoft 系列 SQL 服务器。 In this 2 year old question人们对 EF 并不满意,认为它过于复杂等等。但现在我正在 EF 名称下阅读相同的代码。仅使用 ADO.NET 实体模型(而不是 LINQ to SQL)生成类。既然 EF 功能现已成为事实上的标准 ORM,有人可以消除对 EF 功能的争论吗?

最佳答案

它们有些相似,并且在代码方面可以以非常相似的方式使用,但它们有一些重要的区别。请注意,“LINQ”与“LINQ to SQL”不同; EF 还使用 LINQ。一些显着的差异是:

  • LINQ to SQL 很大程度上仅适用于 SQL Server,与其说是设计,不如说是实现。如果您有兼容的 ADO.NET 提供程序,EF 旨在支持并且确实支持多个数据库。
  • 开箱即用的 LINQ to SQL 对于数据库元数据更改的情况非常糟糕。您必须从头开始重新生成部分模型,并且会丢失自定义内容。
  • EF 支持多对多关系和继承等模型功能。 LINQ to SQL 不直接支持这些。
  • 在 .NET 3.5 中,LINQ to SQL 对 SQL Server 特定功能的支持比 EF 好得多。在 .NET 4 中,情况大多并非如此;它们在这方面非常相似。
  • EF 允许您选择模型优先、数据库优先或代码优先建模。开箱即用的 LINQ to SQL 实际上只支持 DB First。

关于.net - Entity Framework 和 .NET 4.0 的 LINQ to SQL 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3293995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com