LINQ to SQL和Entity
Framework都是一种包含LINQ功能的对象关系映射技术。他们之间的本质区别在于EF对数据库架构和我们查询的类型实行了更好的解耦。使用EF,我们查询的对象不再是完全对应数据库架构的C#类,而是更高层的抽象:Entity
Data Model。这为我们提供了额外的灵活性,但是在性能和简单性上面也会有所损失。
LINQ to SQL由C#团队开发并在.NET Framework
3.5中发布,而Entity Framework由ADO.NET团队开发并作为.NET Framework 3.5 Service
Pack 1的一部分发布。此后,LINQ to SQL由ADO.NET团队接手,其结果是:在.NET
4.0中,ADO.NET团队更加专注于EF的改进,相对来说,LINQ to SQL的改进要小得多。
LINQ to SQL和Entity Framework各有所长,LINQ
to SQL是一个轻量级的ORM框架,旨在为Microsoft SQL
Server数据库提供快速的应用程序开发,其优点是易于使用、简单、高性能。而Entity
Framework的优点在于:其为创建数据库架构和实体类之间的映射提供了更好的灵活性,它还通过提供程序支持除了SQL
Server之外的第三方数据库。
EF 4.0一个非常受欢迎的改进是它现在支持与LINQ to
SQL几乎同样的查询功能。这意味着我们在系列文章中的LINQ-to-db查询可以同时适用于EF
4.0和L2S。而且,这也使得L2S成为我们学习使用LINQ查询数据库的理想技术,因为其保持了对象关系方面的简单性,并且我们学习到的查询原则和技术同样适用于EF。
说明:.NET
3.5下建议使用LINQ,该版本已经完全支持成熟的LINQ;使用EF则建议使用.NET
4.0(VS2010)以上的版本,该版本有成熟完整的EF