LinQ to SQL四大护法剖析
创始人
2024-06-07 01:50:32
0

在向大家详细介绍LinQ to SQL之前,首先让大家了解下LinQ to SQL四大护法,以后全面介绍LinQ to SQL。

我们来看看LinQ to SQL,就是对数据库的查询,以前叫做DLinQ。经常看到LinQ那到底是什么呢?他是Language Integrated Query的缩写,以一种类似SQL语句的形式来对对象进行操作的编程方法。

在使用到LinQ时也会用到以前提到过的一些特性,如:匿名类型,自动化属性等等。

LinQ to SQL是一种ORM,它允许你通过编写.NET程序来控制或操作关系型数据库以达到查询的效果。你可以使用LinQ来检索数据库中的数据,也可以通过其进行数据的更新和添加。同时LinQ to SQL也支持事务,试图以及存储过程等等,通过VS2008(现在使用的是beta版本,下同)的LinQ to SQL设计器我们可以很容易定义一些实体类,我们可以通过添加一个新项来加入.dbml文件,并从数据库服务器窗口拖出数据表。

我们定义两个实体类,Artile和Category,我们也可以把存储过程拖到方法的窗口中,由于我们的存储过程和数据表的命名可能带有前缀或其他标识,我们可以查看属性窗口将他们的name属性改掉我们容易识别的名称。我们打开Designer.cs那个文件看一下,是不是生成了几个类,其中一个最重要的是以DataContext为后缀那个类(他以当前dbml文件名加DataContext为名称的类),他是这个LinQ的上下文,我们可以通过他来执行我们的操作。而上面两个是外键关系,他还生成了一个关系类,而且在Category类中好有一个Article的集合,在Article中也有一个关联属性,在赋值时还会对键值类型进行判断。

下面我们来看看实际应用的一些例子(LinQ to SQL四大护法<SELECT/INSERT/UPDATE/DELETE>):

1.从数据库中检索数据<SELECT>

  1. //三个重载(),(string connectionString),(IDbConnection connection)  
  2. ItLivesNetDataContext cntx = new ItLivesNetDataContext();  
  3. //这个也可以在初始化ItLivesNetDataContext实例时直接进行初始化。  
  4. cntx.Connection = new SqlConnection
    (ConfigurationManager.ConnectionStrings[0].ConnectionString);  
  5. var articles = from a in cntx.Articles  
  6. where a.CategoryID == 1  
  7. orderby a.PostDate descending  
  8. select a;  

上面的代码将返回数据库Articles表中类型ID为1的所有数据,并将其按发布时间进行降序排列。其中articles其实是IEnumerable<T>的实例,这个例子的T就是Article实体类。

2.将新数据插入到数据库中<INSERT>

  1. //插入新类型C++  
  2. Category category = new Category   
  3. CategoryName="CPLUSPLUS",IsActived=trueParentID = 1 };  
  4. //插入新文章,类型为C++  
  5. var article = new Article { Subject = "C++入门"Author="网魂小兵" };   
  6. category.Articles.Add(article);  
  7. cntx.Categories.Add(category);  
  8. cntx.SubmitChanges();  

3.更新新数据<UPDATE>

  1. Category category = cntx.Categories.Single(p =>
    p.CategoryName.ToUpper() == "CSHARP");  
  2. category.IsActived = true;  
  3. category.Description = "UPDATE CSHARP!";  
  4. cntx.SubmitChanges();  

4.删除数据库中的数据<DELETE>

  1. var delArtiles = from s in cntx.Articles  
  2. where s.CategoryName == "CPLUSPLUS"  
  3. select s;  
  4. cntx.Articles.RemoveAll(delArtiles);  
  5. cntx.SubmitChanges();  

以上是LinQ to SQL四大护法的例子,例子很简单一看就能够懂就不多解释了。在数据库中我们还经常要用到检索数据库的方法那就是分页检索数据库,然而在比较大的数据时我们往往会用到存储过程来完成这一职业。

【编辑推荐】

  1. Linq匿名委托类型
  2. Linq异常处理详细介绍
  3. Linq Setting字段描述
  4. Linq数据和对象浅谈
  5. Linq内部执行原理剖析

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...