“Linq to Sql Classes”和“ADO.NET Entitity Data Model”之间有什么区别?

时间:2009-08-14 14:23:13

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

我想知道“ADO.NET Entitiy Data Model”和“Linq to SQL Classes”之间的主要区别是什么?什么是最好的选择?

我在互联网上找不到任何文件,并且我所知道的一切都是我们可以用同样的方式同时使用“几乎”。

3 个答案:

答案 0 :(得分:1)

Linq To Sql不再受到微软的积极支持......他们选择了实体框架“未来之路”。您可以谷歌并验证这一点。

这是您友好的邻居SO topic with all the good bits

更新:嗯..似乎MS已从臭名昭着的声明中退了一步。但是关于L2S的未来,这个信息仍然不明确。

  

从.NET 4.0开始,LINQ to Entities将会   是推荐的数据访问   LINQ to relational的解决方案   场景。

     

我们也希望得到您的反馈意见   LINQ to SQL的关键经验   我们需要添加到LINQ中   实体以便启用相同的功能   简单的场景带给你的   首先使用LINQ to SQL。

几乎可以读到'逐步淘汰'给我。虽然我可能会在阅读之间阅读...但毕竟可能有希望...在所有'围栏'的答案背后 ADO.Net team blog : Update on LINQ to SQL and LINQ to Entities Roadmap
ADO.Net team blog : Clarifying the message on L2S Futures
http://damieng.com/blog/2008/10/31/linq-to-sql-next-steps

答案 1 :(得分:1)

EF类不是持久性的 - 无知的。它们从基类继承,该基类添加唯一的实体键并更改跟踪器。与使用L2S生成的对象相比,这可能会使断开连接的环境更加痛苦。

答案 2 :(得分:1)

这是我从个人经历中可以看出的(可能不是整个故事):

  • LINQ to SQL的学习曲线可能比ADO.NET Entity Framework略微陡峭。就个人而言,我也觉得LINQ to SQL更轻巧。
  • 这两个框架都在下一版本的.NET框架(版本4)中得到更新。
  • 如果包含.NET 4的功能,那么实体框架似乎是功能更丰富的框架。微软似乎也很同意这个框架。
  • Visual Studio对这两个框架都有很强的支持。例如,如果在项目中创建ADO.NET数据服务,它将发现您的LINQ to SQL和Entity Framework类。
  • 实体框架中的实体类派生自实体框架中的特定基类。有些人可能认为这是使用实体框架的一个显示器。

我发现这两个框架都非常容易使用,我建议任何对这些技术感兴趣的人都可以使用它们。在Visual Studio中创建一个首选的.NET项目,并添加LINQ to SQL类和连接到您有权访问的任何数据库的Entity Framework模型。然后通过执行CRUD操作等方法尝试这两个框架。