LINQ to SQL和ADO.NET的区别

作为ADO.NET的扩展,LINQ to SQL和ADO.NET实体数据模型都被用于降低在使用OO语言访问基于RDBMS数据时的复杂性。两者都提供了各自的机制使用LINQ将纯粹的业务逻辑和数据访问逻辑(由framework提供)解耦,我们因此可以使用编程语言自身的语法来查询数据。两者都允许使用业务对象映射关系数据库中的数据,并且可以映射它们之间的关系(包括继承)。

 当我们谈论两者间的异同时,我们常会将ADO.NET实体数据模型看做是LINQ to SQL的超集,ADO.NET实体数据模型比LINQ toSQL涉及的功能要多得多。 

 LINQ to SQL可以用作应用程序快速部署,而ADO.NET实体数据模型则可以用作企业级程序部署。

 LINQ to SQL只支持MS SQL Server数据库(包括compact版本),然而外部服务提供商开发了MySQL,Oracle,Postgres等数据提供程序(data provider)。ADO.NET实体数据模型基于ADO.NET数据提供程序构建,因此它支持所有ADO.NET数据提供程序。 LINQ to SQL允许开发人员对应数据库中的表或视图直接生成映射的.NET类,因此类和表之间是1:1的对应,这也就意味着它无法使用一个类来代表一张表的一部分或者多张表。另一方面,ADO.NET实体数据模型允许开发人员生成对应概念性(conceptual)数据模型的类,这使得它的类和表之间是m:n的关系,因此它可以使用一个类来映射表的一部分或多张表。得益于此,DBA可以为了提高性能、分区(partitioning)来对数据库进行改造,并且这不会影响到业务逻辑。 

 因此,LINQ to SQL的目标是快速开发仅支持MS SQL数据库并且其关系映射较为简单的应用程序。而ADO.NET实体数据模型则用于开发各种基于ADO.NET数据提供程序的数据库并且业务对象与持久化数据有着复杂映射关系的企业级应用程序。 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值