借助于LINQ提供的各种功能和独有的语法结构,LINQ已经被用来作为一种统一的数据库访问技术而被广泛使用,用以消除从数据访问层到数据源层出不穷的区别。通过LINQ检索,我们已经可以不用自己编写一行代码来从数据库获取到数据,LINQ和SQL之间提供了一个直接映射关系,它可以通过我们事先指定的数据库连接自动生成数据库实体类,而我们只需要通过LINQ语句操作这些实体对象就可以非常轻松地从数据库中获取到数据。当然,LINQ所生成的实体对象的功能远远不止这些,它甚至支持数据的更新和存储过程的调用,所有这些都可以通过简单的几行LINQ语句来完成,让我们真正摆脱了编写数据访问层、数据库实体类的工作。
下面就让我们来看看LINQ的神奇功能吧!
使用LINQ生成数据库实体类
Visual Studio 2008集成开发环境为我们提供了很多有用的功能来实现LINQ to SQL。为了让读者可以自行尝试本文所举的示例,读者可能需要在本地安装一个SQL Server数据库实例,Northwind是微软官方提供的一个不错的例子,如果你本地没有安装这个实例,可以去下面这个地址下载:
http://www.microsoft.com/downloads/details.aspx?FamilyID=06616212-0356-46A0-8DA2-EEBC53A68034&displaylang=en
我们在Visual Studio 2008中新建一个控制台应用程序,取名为LINQExample,然后打开Server Explorer窗口并连接到Northwind数据库。如果找不到Server Explorer窗口,可以通过View-Server Explorer菜单打开。
在Server Explorer窗口中,右键单击Data Connection节点,选择Add Connection,在弹出的窗口中选择Northwind数据库。
在工程中添加Northwind.dbml文件,该文件是LINQ to SQL Classes类型的文件。
然后将Server Explorer窗口中Northwind数据库中的所有Table和Stored Procedures拖放到Northwind.dbml视图窗口中。此时,在Northwind.dbml文件中,Visual Sdutio已经自动为我们创建了数据库实体类和映射到数据库存储过程的静态方法,在后面的示例中我们可以通过LINQ语句直接使用它们。
打开Class View窗口,在其中也可以看到自动生成的实体类和静态方法。
是不是非常方便啊?那接下来就来看看如何通过LINQ检索和修改数据。
使用LINQ检索数据
LINQ检索提供的语法结构与SQL比较接近,这让我们使用起来更加容易上手。Northwind.dbml自动包装了一个上下文对象NorthwindDataContext类,其中包括了我们在Northwind数据库中要使用的所有实体类和存储过程映射方法,同时还提供了操作表数据的方法,使用时我们不需要去关心它是如何连接数据库并进行底层数据操作的。事实上,Northwind.dbml文件中已经包含了这些基础设施!使用记事本打开Northwind.dbml,可以发现这是一个纯粹的XML结构化文件,里面包含了数据库连接字符串和一些数据库实体类的映射关系,同时,Northwind.designer.cs文件中也做了很多基础性的工作,感兴趣的读者可以自行研究其中的代码,或许对解决实际问题有所帮助。本文在这里不对这个文件的具体结构作详细的解释。
下面的这个例子展示了通过LINQ检索Northwind数据库中Customers表City等于London的数据,并在Command窗口中打印出来。
- where curstomers.City =="London"
- orderby curstomers.CompanyName
- select curstomers;
相关视频
相关阅读 listary使用教程 listary的使用技巧iPhone数据迁移怎么用 iOS 12.4数据迁移功能使用教程地球防卫军5载具怎么操作 地球防卫军5载具使用操作方法LOL云顶之弈各英雄如何搭配装备 云顶之弈全英雄装备搭配推荐Soundflower怎么使用 Soundflower使用教程ELDEN RING什么时候出 ELDEN RING发售时间一览macOS 10.15支持哪些设备升级 macOS Catalina可升级设备一览macOS 10.15有什么新功能 macOS Catalina新功能详细介绍
热门文章 没有查询到任何记录。
最新文章
什么是.NET中的TDD?ASP.NET AJAX入门简介
WebMatrix入门教程VC++2008中如何调用GetOpenFileName打开文件PlaySound函数在VC++6.0中如何播放音乐及声请问VC++回调函数怎么用
人气排行 嵌入式实时操作系统VxWorks入门教程ArrayList 与 string、string[] 的转换C#遍历整个文件夹及子目录的文件代码WebMatrix入门教程asp.net判断文件或文件夹是否存在c#判断数据NULL值的方法vc++6.0怎么写Windows简单窗口代码.net解决数据导出excel时的格式问题
查看所有0条评论>>