初级问题:ado.net实体数据模型还是linq to sql?

wedding123 2011-07-15 03:11:30
winform程序c#,sql 2008数据库,数据访问是用ado.net实体数据模型还是linq to sql呢?
请问各自的优越点,谢谢!
...全文
223 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangdingbang 2011-07-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wedding123 的回复:]
那大家是用ado.net实体数据模型或者linq to sql呢还是直接使用ado.net 2.0的sql 语句拼接的方法多呢?
如何数据库结构变动,比如增加或删除了字段,表和对象的映射是不是全部需要重建?
[/Quote]
不结贴不再留言啦 呵呵
wedding123 2011-07-15
  • 打赏
  • 举报
回复
那大家是用ado.net实体数据模型或者linq to sql呢还是直接使用ado.net 2.0的sql 语句拼接的方法多呢?
如何数据库结构变动,比如增加或删除了字段,表和对象的映射是不是全部需要重建?
wangdingbang 2011-07-15
  • 打赏
  • 举报
回复
作为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数据提供程序的数据库并且业务对象与持久化数据有着复杂映射关系的企业级应用程序。
wedding123 2011-07-15
  • 打赏
  • 举报
回复
这样的方式如果数据库结构变动是不是要全部重新生成表的对象?岂不是灾难?
xuexiaodong2009 2011-07-15
  • 打赏
  • 举报
回复
linq to sql还是简单啊,对象性很强,性能不怎么样

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧