C#学习之LinqtoSql类的简单例子

LinqtoSql类把访问、操作数据库的细节封装了起来,把连接操作数据库变得相当简单。下面是简单的例子。

 

第一步:添加LinqtoSql类

1、创建一个控制台应用程序项目,下载一个NrothWind 数据库放到解决方案里面。然后点击控制台项目右键选择添加,选择类

选择LINQ to SQL 类,名称改为NorthWindDB,因为一会是连接NorthWind数据库的。

2、此时,解决方案里的内容如下

3、双击NorthWindDB.dbml文件,然后鼠标点击一下左边的编辑框,按F4,右边就会弹出NorthWindDB.dbml文件的相关属性信息

NorthWindDBDataContext 就是编译器自动生成的继承于 DataContext 类的一个类,就是这个类封装了操作数据库的细节。上下文命名空间(就是NorthWindDBDataContext类所在的命名空间),默认是空的,我 们给它加上 NorthWindDBCont。实体命名空间(编译器会把我们链接到的数据库里面我们用到的表都映射成一个对应的类(表的列对应类的属性),那些对应着 表映射出来的类就属于这个命名空间),默认也是空的,填上 NorthWindDBEnts 。

 

第二步:可视化连接数据库

1、选择工具栏的视图,选择服务器资源管理器,右键点击数据连接,选择添加链接

2、弹出添加连接对话框,点更改

3、弹出更改数据源对话框,选择 Microsoft SQL Server 数据库文件

4、点浏览

5、选择刚才下载的NorthWind.MDF数据库文件

6、点左下角的测试,如不成功,重新操作 第二步。如果成功,打开服务器资源管理器,可以看到NorthWind数据库已经加载成功。双击NorthWindDB.dbml文件,把里面的表 Customers 、 Orders拖过去

这个时候,编译器就会自动在 NorthWindDBEnts命名空间里创建两个类来对应着这两个表。

打开NorthWindDB.designer.cs文件,NorthWindDBEnts命名空间下的代码如下:

 

第三步:主代码

复制代码
复制代码
 1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace ConsoleApp
7 {
8 class Program
9 {
10 static void Main(string[] args)
11 {
12 //创建NorthWindDBCont.NorthWindDBDataContext的实例
13 NorthWindDBCont.NorthWindDBDataContext ctx = new NorthWindDBCont.NorthWindDBDataContext();
14
15 //查询住在London的顾客
16 var q = from x in ctx.Customers
17 where x.City == "London"
18 select new { x.ContactName, x.City};
19
20 if (q.Count() != 0)
21 {
22 foreach (var item in q)
23 {
24 Console.WriteLine(item);
25 }
26 }
27 else
28 {
29 Console.WriteLine("nobody in London");
30 }
31 Console.WriteLine();
32
33 //创建NorthWindDBEnts.Customers 的实例
34 NorthWindDBEnts.Customers myCustomer = new NorthWindDBEnts.Customers();
35
36 //对表Customers进行查询,把查询得到的住在London的顾客
37 //并把查得的第一个顾客返回赋给NorthWindDBEnts.Customers类 的实例
38 myCustomer = ctx.Customers.First(a => a.City == "London");
39 Console.WriteLine(myCustomer.ContactName);
40
41 Console.ReadKey();
42 }
43 }
44 }
复制代码
复制代码

输出如下:

 

完。这个好像比WCF简单点

posted on   wdcwy  阅读(550)  评论(0编辑  收藏  举报

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示