ADO.NET与ORM的比较(3) Linq to SQL实现CRUD2010-11-20 51cto 周金桥说明:个人感觉在Java领域大型开发都离不了ORM的身影,所谓的SSH就是 Spring+Struts+Hibernate,除了在学习基础知识的时候被告知可以使用JDBC操 作数据库之外,大量的书籍中都是讲述使用Hibernate这个ORM工具来操作数据。 在.NET中操作数据库的方式有多种,除了最直接的方式就是使用ADO.NET之外, 还可以使用NHibernate这个Hibernate在.NET中的实现ORM,如果你对第三方的 ORM 持怀疑态度,你还可以使用来自微软的实现、根正苗红的Linq或者 EntityFramework。大部分从早期就开始使用.NET开发的程序员可能对ADO.NET有种迷恋,使用 ADO.NET可以充分将我们早期的SQL知识发挥得淋漓尽致,并且出于对性能的考虑 ,有些人对.NET中的ORM 还保持一种观望态度,包括我自己也是这种态度。不过 即使在实际开发中不用,并不代表我们不能去了解和比较这些技术,任何事物的 出现和消亡总有其原因的,我们可以了解它们的优点和长处。所以本人抽出了几 个周末的时间分别用ADO.NET、NHibernate、Linq和EntityFramework来实现对数 据库单表数据的创建、读取、更新和删除操作,也就是所谓的CRUD (C:Create/R:Read/U:Update/D:Delete)。通过实现相同功能的比较,大家自己判断那种方式更适合自己。需要说明的 是,如果在VS2008中使用EntityFramework就需要安装 VS2008SP1。语言集成查询 (LINQ) 是 Visual Studio 2008 中的一组功能,可为 C# 和 Visual Basic 语言语法提供强大的查询功能。LINQ 引入了标准的、易于学习的 查询和更新数据模式,可以对其技术进行扩展以支持几乎任何类型的数据存储。 Visual Studio 2008 包含 LINQ 提供程序的程序集,这些程序集支持将 LINQ 与 .NET Framework 集合、SQL Server 数据库、ADO.NET 数据集和 XML 文档一 起使用。在本篇讲述利用Linq实现对数据库的CRUD功能,也就是Linq to SQL,需要说 明的是Linq to SQL只支持SQL Server数据库,Linq to SQL只是Linq的一部分功 能。用Linq to SQL来操作数据库确实比使用NHibernate在操作上要方便得多,通 过下面的操作读者也会体会得到,毕竟这个是微软官方的东东,微微支持的力度 自然要大些。一、准备首先,向项目中添加Linq To SQL的类,如下图所示:

在名称一栏中填写较友好的名字之后,然后项目中就会增加一个后缀为dbml 的文件,双击这个文件就会进入设计视图,如下图所示: