Linq to SQL访问数据库描述
创始人
2024-06-07 01:41:19
0

在向大家详细介绍Linq之前,首先让大家了解下使用Linq to SQL访问数据库,包括介绍建立一个C# Console Application测试我们的ORM。

使用Linq to SQL访问数据库

我们首先新建一个工程。为了简单起见,我们就直接建立一个C# Console Application测试我们的ORM吧。将这个工程命名为LinqToSqlDemo.Test。当然,建好工程后,不要忘了添加对工程LinqToSqlDemo.Orm的引用,还要添加对“System.Data.Linq”命名空间的引用。

然后,我们打开Program.cs文件,将其中的内容替换为如下测试代码。

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Data.Linq;  
  4. using System.Linq;  
  5. using System.Text;  
  6.  
  7. using LinqToSqlDemo.Orm;  
  8.  
  9. namespace LinqToSqlDemo.Test  
  10. {  
  11. class Program  
  12. {  
  13. private static DataClassesDataContext 
    dataContext = new DataClassesDataContext();  
  14.  
  15. private static void Output()  
  16. {  
  17. //输出分类信息  
  18. foreach (Category c in dataContext.Categories)  
  19. {  
  20. Console.WriteLine("分类" + c.ID + ":" + c.Name);  
  21. }  
  22.  
  23. //输出体育新闻下的公告信息  
  24. Category categorySport = dataContext.Categories.Single(c => c.Name == "体育新闻");  
  25. foreach (Bulletin b in categorySport.Bulletins)  
  26. {  
  27. Console.WriteLine("标题:" + b.Title);  
  28. Console.WriteLine("内容:" + b.Content);  
  29. Console.WriteLine("发布日期:" + b.Date);  
  30. Console.WriteLine("所属分类:" + b.Category1.Name);  
  31. }  
  32. }  
  33.  
  34. private static void TestInsert()  
  35. {  
  36. //生成分类实体类  
  37. Category category1 = new Category()  
  38. {  
  39. Name = "国际要闻" 
  40. };  
  41. Category category2 = new Category()  
  42. {  
  43. Name = "体育新闻" 
  44. };  
  45. Category category3 = new Category()  
  46. {  
  47. Name = "财经快报" 
  48. };  
  49.  
  50. //生成公告实体类  
  51. Bulletin bulletin1 = new Bulletin()  
  52. {  
  53. Content = "曼联晋级冠军杯四强",  
  54. Date = DateTime.Now,  
  55. Title = "曼联晋级冠军杯四强" 
  56. };  
  57. Bulletin bulletin2 = new Bulletin()  
  58. {  
  59. Content = "18:00直播亚冠首尔VS山东,敬请期待!!!",  
  60. Date = DateTime.Now,  
  61. Title = "18:00直播亚冠首尔VS山东" 
  62. };  
  63.  
  64. //将公告加入相应分类  
  65. category2.Bulletins.Add(bulletin1);  
  66. category2.Bulletins.Add(bulletin2);  
  67.  
  68. //加入数据库  
  69. dataContext.Categories.InsertOnSubmit(category1);  
  70. dataContext.Categories.InsertOnSubmit(category2);  
  71. dataContext.Categories.InsertOnSubmit(category3);  
  72. dataContext.SubmitChanges();  
  73. }  
  74.  
  75. private static void TestDelete()  
  76. {  
  77. dataContext.Categories.DeleteOnSubmit
    (dataContext.Categories.Single(c => c.Name == "国际要闻"));  
  78. dataContext.SubmitChanges();  
  79. }  
  80.  
  81. private static void TestUpdate()  
  82. {  
  83. Category categoryFinance = dataContext.
    Categories.Single(c => c.Name == "财经快报");  
  84. categoryFinance.Name = "财经新闻";  
  85. dataContext.SubmitChanges();  
  86. }  
  87.  
  88. static void Main(string[] args)  
  89. {  
  90. Console.WriteLine("===Linq to SQL 测试===");  
  91. Console.WriteLine();  
  92.  
  93. Console.WriteLine("===测试Insert===");  
  94. Console.WriteLine();  
  95. TestInsert();  
  96. Output();  
  97.  
  98. Console.WriteLine("===测试Delete===");  
  99. Console.WriteLine();  
  100. TestDelete();  
  101. Output();  
  102.  
  103. Console.WriteLine("===测试Update===");  
  104. Console.WriteLine();  
  105. TestUpdate();  
  106. Output();  
  107.  
  108. Console.ReadLine();  
  109. }  
  110. }  
  111. }  

我们先来看看这段测试程序做了什么事。刚开始,数据库是空的,我们首先插入三个分类,并在“体育新闻”下插入两条公告,这是对Insert的测试。接着,我们删除了“国际要闻”分类,这是对Delete的测试。然后,我们将“财经快报”改为“财经新闻”,这是对Update测试。另外,整个过程的输出当然是对Select的测试。这样,数据库基本的操作都测试过了。从输 出结果来看,我们的ORM组件运行很顺利,程序输出正确。以上介绍使用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 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...