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. 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. (转)Document对象内容集合

    原文:http://webcenter.hit.edu.cn/articles/2009/06-10/06144703.htm document 文挡对象 - JavaScript脚本语言描述 ——— ...

  2. 使用Wireshark捕捉USB通信数据

    USB,是英文Universal Serial Bus(通用串行总线)的缩写,而其中文简称为“通串线”,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯.USB接口支持设备的即插即用和热插拔功能 ...

  3. 调度 Quartz 时间格式配置

    1.   CronTrigger时间格式配置说明 CronTrigger配置格式: 格式: [秒] [分] [小时] [日] [月] [周] [年]

  4. aspx页面图片用作html中img的url

    背景:如果无法直接访问保存图片的服务器,我们可以先制作一个aspx页面用来接受服务器发送过来的图片,然后html页面请求aspx页面.对图片服务器起一定的缓冲保护作用,预防对黑客攻击造成危害. 注意: ...

  5. CQOI2009 BZOJ1303 中位数

    首先找出b在数列中的位置mid 用 f[i]记录mid左边从mid往左统计比m小的数与比m大的数的差值为i的个数 用g[i]记录mid右边从mid往右统计比m大的数与比m小的数的差值为i的个数 ..有 ...

  6. HtmlString类创建HTML Hepler 扩展MVC TextBox组件

    第一步:定义静态类 第二步:定义静态方法1 public static class MyTextBoxEx(){ //扩展方法三要素: //1.静态类 //2.静态方法 //3.this关键字 pub ...

  7. Web 仪表盘

    /*********************************************************************** * Web 仪表盘 * 说明: * 之前很久,都想知道 ...

  8. 常用的Hash算法

    1.RSHash unsigned int RSHash(const std::string& str) {    unsigned int b    = 378551;    unsigne ...

  9. 决策树模型 ID3/C4.5/CART算法比较

    决策树模型在监督学习中非常常见,可用于分类(二分类.多分类)和回归.虽然将多棵弱决策树的Bagging.Random Forest.Boosting等tree ensembel 模型更为常见,但是“完 ...

  10. Cocos2d-x 网络资源

    blog: http://www.cnblogs.com/mmidd/tag/Cocos2d-x/ http://blog.csdn.net/u012945598