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简单点

C#学习之LinqtoSql类的简单例子的更多相关文章

  1. CUDA学习,环境配置和简单例子

    根据摩尔定律,每18个月,硬件的速度翻一番.纵使CPU的主频会越来越高,但是其核数受到了极大的限制,目前来说,最多只有8个或者9个核.相比之下,GPU具有很大的优势,他有成千上万个核,能完成大规模的并 ...

  2. 通过Redux源码学习基础概念一:简单例子入门

    最近公司有个项目使用react+redux来做前端部分的实现,正好有机会学习一下redux,也和小伙伴们分享一下学习的经验. 首先声明一下,这篇文章讲的是Redux的基本概念和实现,不包括react- ...

  3. [转载]使用java.lang.Process类的简单例子

    FROM: http://segmentfault.com/blog/lidonghao/1190000000372192 ProcessBuilder类是J2SE 1.5在java.lang中新添加 ...

  4. Logstash学习1-logstash的简单例子

    如何安装ELK Redis插件 1. 安装好logstash后.2. 最简单的logstash.logstash -e 'input { stdin { } } output { stdout {} ...

  5. 计算程序运行时间(.net1.1 于.net2.0的区别)在.net2.0中提供了Stopwatch类,简单例子

    1. [代码].NET 2.0      using System.Diagnostics; private Stopwatch stw = new Stopwatch(); private void ...

  6. C#使用 UdpClient 类进行简单通信的例子

    UdpClient 类提供了一些简单的方法,用于在阻止同步模式下发送和接收无连接 UDP 数据报. 因为 UDP 是无连接传输协议,所以不需要在发送和接收数据前建立远程主机连接.但您可以选择使用下面两 ...

  7. [转] 3个学习Socket编程的简单例子:TCP Server/Client, Select

    以前都是采用ACE的编写网络应用,最近由于工作需要,需要直接只用socket接口编写CS的代码,重新学习这方面的知识,给出自己所用到的3个简单例子,都是拷贝别人的程序.如果你能完全理解这3个例子,估计 ...

  8. hadoop学习第四天-Writable和WritableComparable序列化接口的使用&&MapReduce中传递javaBean的简单例子

    一. 为什么javaBean要继承Writable和WritableComparable接口? 1. 如果一个javaBean想要作为MapReduce的key或者value,就一定要实现序列化,因为 ...

  9. Java-马士兵设计模式学习笔记-观察者模式-AWT简单例子

    1.AWT简单例子 TestFrame.java import java.awt.Button; import java.awt.Frame; import java.awt.event.Action ...

随机推荐

  1. SVG 2D入门8 - 文档结构

    前面介绍了很多的基本元素,包括结构相关的组合和重用元素,这里先对SVG的文档结构中剩下的相关元素简单总结一下,然后继续向前领略SVG的其他特性. SVG文档的元素基本可以分为以下几类: 动画元素:an ...

  2. android自动化测试解决跨进程通信问题

    大概用这些吧: IPC  Handler    Messager   Bundle  service(binder)   messageconnection ,thead.getXXX.getId 注 ...

  3. php大力力 [026节] php开发状态要随时做好整理工作

    php大力力 [026节]  php开发状态要随时做好整理工作: 1.整理了开发目录,以及文件命名: 2.做了各个页面的快捷方式: 3.把浏览器safari的很多没来得及消化的页面链接,写入了我的在线 ...

  4. python3爬虫初探(二)之requests

    关于请求网页,不得不提requests这个库,这是爬虫经常用到的一个第三方库,用pip安装即可. requests用法很多,这里只写一些基础的,其他高级功能可参考官方文档. import reques ...

  5. Zipper_DP

    Description Given three strings, you are to determine whether the third string can be formed by comb ...

  6. 为什么有的代码要用 base64 进行编码

    一.1.传输信道只支持ASCII字符,不方便传输二进制流的场合. 2.含有非ASCII字符,容易出现编码问题的场合. 3.简易的掩人耳目.至少非开发人一眼看不出来是啥. 二.Base64主要用于将不可 ...

  7. Unity3D ShaderLab 使用BlinnPhong高光类型

    Unity3D shaderLab 使用BlinnPhong高光类型 上一篇我们实现了自定义高光类型,这一篇,我们说Blinn高光,它是另一种计算和估算高光更高效的方式,它是通过视线防线和光线方向,所 ...

  8. Magento Soap Api接口出错无法使用

    在给客户测试Magento Soap接口的时候出现如下错误提示. This page contains the following errors:error on line 3 at column 6 ...

  9. iOS-appDelegate 生命周期

    - (void)applicationWillResignActive:(UIApplication *)application 说明:当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事 ...

  10. 转--->svn的使用

    在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境.在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还 ...