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简单点
C#学习之LinqtoSql类的简单例子的更多相关文章
- CUDA学习,环境配置和简单例子
根据摩尔定律,每18个月,硬件的速度翻一番.纵使CPU的主频会越来越高,但是其核数受到了极大的限制,目前来说,最多只有8个或者9个核.相比之下,GPU具有很大的优势,他有成千上万个核,能完成大规模的并 ...
- 通过Redux源码学习基础概念一:简单例子入门
最近公司有个项目使用react+redux来做前端部分的实现,正好有机会学习一下redux,也和小伙伴们分享一下学习的经验. 首先声明一下,这篇文章讲的是Redux的基本概念和实现,不包括react- ...
- [转载]使用java.lang.Process类的简单例子
FROM: http://segmentfault.com/blog/lidonghao/1190000000372192 ProcessBuilder类是J2SE 1.5在java.lang中新添加 ...
- Logstash学习1-logstash的简单例子
如何安装ELK Redis插件 1. 安装好logstash后.2. 最简单的logstash.logstash -e 'input { stdin { } } output { stdout {} ...
- 计算程序运行时间(.net1.1 于.net2.0的区别)在.net2.0中提供了Stopwatch类,简单例子
1. [代码].NET 2.0 using System.Diagnostics; private Stopwatch stw = new Stopwatch(); private void ...
- C#使用 UdpClient 类进行简单通信的例子
UdpClient 类提供了一些简单的方法,用于在阻止同步模式下发送和接收无连接 UDP 数据报. 因为 UDP 是无连接传输协议,所以不需要在发送和接收数据前建立远程主机连接.但您可以选择使用下面两 ...
- [转] 3个学习Socket编程的简单例子:TCP Server/Client, Select
以前都是采用ACE的编写网络应用,最近由于工作需要,需要直接只用socket接口编写CS的代码,重新学习这方面的知识,给出自己所用到的3个简单例子,都是拷贝别人的程序.如果你能完全理解这3个例子,估计 ...
- hadoop学习第四天-Writable和WritableComparable序列化接口的使用&&MapReduce中传递javaBean的简单例子
一. 为什么javaBean要继承Writable和WritableComparable接口? 1. 如果一个javaBean想要作为MapReduce的key或者value,就一定要实现序列化,因为 ...
- Java-马士兵设计模式学习笔记-观察者模式-AWT简单例子
1.AWT简单例子 TestFrame.java import java.awt.Button; import java.awt.Frame; import java.awt.event.Action ...
随机推荐
- UIkit框架之UIimageview
1.继承链:UIview:UIresponder:NSObject 2.如果你想利用这个类来制作动态图片,你需要遵守以下的原则: (1)所有的图片的大小都要一样 (2)所有的图片要使用同样的比例,同样 ...
- PHP流程控制分支结构
1.顺序结构2.分支结构(条件结构.选择结构) (1)单路分支 //条件bool,ture或false if(条件){ 执行语句: ...
- C# Rhino Mocks
Mock和Stub的区别: 1,Stub是一个在你的测试代码中需要用到的object,你可以为它设置expectations,然后它就会按其运行,但是这些expectations不会被核对. 2,Mo ...
- ERP存储过程的调用和树形菜单的加载(四)
引用:DAL:System.Data.SqlClient;System.Data; namespace CommTool { public class SqlComm { /// <summar ...
- JS回车键处理
HTML <input type="text" id="keyword" name="keyword" autocomplete=&q ...
- Team Foundation API - 编程控制文件版本
Team Foundation Server (TFS)工具的亮点之一是文件的版本控制.在TFS中实现文件版本控制的类型: Microsoft.TeamFoundation.Client.TfsTea ...
- NSFileHandle 、 沙箱机制 、 属性列表
1 使用NSFilehandle进行数据读写 1.1 问题 NSFileManager用于实现对文件的操作,而NSFileHandle是IOS提供的对文件内容(二进制数据)进行操作的类,例如数据的读写 ...
- iOS开发资源:几个类似Path 2.0侧滑菜单的效果实现
IIViewDeckController/ViewDeck 类似 Path 2.0 的视图左右滑动的效果,可向左或者向右顺滑的滑动.支持ARC和non-ARC,默认ARC. https://githu ...
- The implementation of Lua 5.0 阅读笔记(二)
6 线程和协程 读完这篇文章我才意识到python的协程到底缺了什么,这个就是coroutine和semi-coroutine的区别了.区别就是,semi-coroutine只能返回(yield)到调 ...
- Hadoop 流
前言 Hadoop流提供了一个API,允许用户使用任何脚本语言编写Map函数或Reduce函数. 本文对此知识点进行介绍. Hadoop流的工作原理 在以前的例子中,Map和Reduce工作都是由类来 ...