当前位置:
文档之家› 使用LINQ to SQL访问数据库
使用LINQ to SQL访问数据库
Copyright@2009 College of ITSoft (HDU)
Version No: 2.0
16
使用Object Relational Designer创建实体 1. 选择站点的添加新项 2. 选择LINQ to SQL类 3. 打开Object Relational Designer后将一个或多 个表拖放至Designer面板上
Copyright@2009 College of ITSoft (HDU)
Version No: 2.0
14
手工创ቤተ መጻሕፍቲ ባይዱ实体
using System.Data.Linq.Mapping; [Table] public class TempInfo { [Column (IsPrimaryKey=true)] public string uID { get; set; } [Column(IsPrimaryKey=true)] public DateTime cDate { get; set; } [Column] public double TempAM { get; set; } [Column] public double TempPM { get; set; } [Column] public string Des { get; set; } }
Copyright@2009 College of ITSoft (HDU)
Version No: 2.0
11
C#语言中的子句 语言中的子句
from 指定数据源以及用来迭代数据源的变量 where 过滤查询的结果 select 指定查询结果中的项 group 通过某一关键字对相关的值进行聚合 into 存储聚合中的结果,或连接到一个临时变 量 orderby将查询结果按升序或降序进行排序 join 通过一个关键字,对两个数据源进行连接 let 创建一个临时变量,来表示子查询的结果
Copyright@2009 College of ITSoft (HDU)
Version No: 2.0
9
C#语言的新特性 语言的新特性
Lambda表达式 Lambda表达式语法:
void Page_Init() { btn.Click += (sender,e)=>lblResult.Text = DateTime.Now.ToString(); } Lambda表达式使用操作符=>(“goes into”操作符)来分隔方法的参数列表 和方法体,当参数只有一个时,圆括号是可选的。
初始化列表
MyClass mc = new MyClass() { Id=1,Name ="fxj"};
类型推断
var message=“Hello World”;
匿名类型
var person = new {Name="fangxj",Gender="male" };
泛型
Copyright@2009 College of ITSoft (HDU) Version No: 2.0 7
使用LINQ to SQL访问 使用 访问 数据库
Copyright@2009 College of ITSoft (HDU)
Version No: 2.0
1
本章内容
C#语言的新特性 创建LINQ to SQL 实体 使用LINQ to SQL 执行标准数据库命令 创建自定义的LINQ实体基类 小结
Copyright@2009 College of ITSoft (HDU)
Version No: 2.0
4
等价代码:
class Program { static void Main(string[] args) { int[] arr = new int[] { 8, 5, 89, 3, 56, 4, 1, 58 }; var m = arr.Where(n=> n < 5).OrderBy(n=>n); foreach (var n in m) { Console.WriteLine(n); } Console.ReadLine(); } }
Copyright@2009 College of ITSoft (HDU)
Version No: 2.0
2
基本概念
LINQ,语言级集成查询 (Language Integrated Query)
过了最近 20 年,面向对象编程技术( object-oriented (OO) programming technologies )在工业领域的应用已经进入了一个稳定的发展 阶段。程序员现在都已经认同像 类(classes)、对象(objects)、方法 (methods)这样的语言特性。考察现在和下一代的技术,一个新的编程技 术的重大挑战开始呈现出来,即面向对象技术诞生以来并没有解决降低访问 和整合信息数据( accessing and integrating information )的复杂度的问题。 其中两个最主要访问的数据源与数据库( database )和 XML 相关。 LINQ 提供了一条更常规的途径即给 .Net Framework 添加一些可以应 用于所有信息源( all sources of information )的具有多种用途( generalpurpose )的语法查询特性( query facilities ),这是比向开发语言和运行 时( runtime )添加一些关系数据( relational )特性或者类似 XML 特性 ( XML-specific )更好的方式。这些语法特性就叫做 .NET Language Integrated Query (LINQ) 。 包含 DLinq 和 XLinq。
BusinessClassDataContext bcdc = new BusinessClassDataContext(); GridView2.DataSource = erInfo; GridView2.DataBind();
Copyright@2009 College of ITSoft (HDU)
Copyright@2009 College of ITSoft (HDU)
Version No: 2.0
5
Linq的内部执行原理浅析 LINQ(Language Integrated Query)是 Visual Studio 2008中的领军人物。借助于LINQ 技术,我们可以使用一种类似SQL的语法来查询 任何形式的数据。目前为止LINQ所支持的数据源 有SQL Server、XML以及内存中的数据集合。开 发人员也可以使用其提供的扩展框架添加更多的 数据源,例如MySQL、Amazon甚至是Google Desktop。
18
使用LinqDataSource控件
Copyright@2009 College of ITSoft (HDU)
Version No: 2.0
19
使用LINQ to SQL执行标准数据库命令
使用LINQ to SQL进行选择
选择特殊的列
BusinessClassDataContext bcdc = new BusinessClassDataContext(); var query = erInfo.Select(u => new {u.uID ,u.uName });
Copyright@2009 College of ITSoft (HDU)
Version No: 2.0
10
重识LINQ 重识
var Names = new List<string>{“Tom”,”Jenny”,”John”,”Cherry”}; var results = from w in Names where w.Contains(“n”) select w; 第一条语句创建了一个泛型列表Names 第二条语句是LINQ查询,像一个反向的SQL语句,最终结果得到 Jenny John
Copyright@2009 College of ITSoft (HDU)
Version No: 2.0
3
首先来看一个很简单的LINQ查询例子,查询一个 int 数组中小于5的数字,并按照大小顺序排列:
class Program { static void Main(string[] args) { int[] arr = new int[] { 8, 5, 89, 3, 56, 4, 1, 58 }; var m = from n in arr where n < 5 orderby n select n; foreach (var n in m) { Console.WriteLine(n); } Console.ReadLine(); } }
Version No: 2.0
17
构建实体关联
GridView2.DataSource = erInfo.Single(u=>u.uID=="fangxj").TempInfo;
Copyright@2009 College of ITSoft (HDU)
Version No: 2.0
Copyright@2009 College of ITSoft (HDU) Version No: 2.0 13
创建LINQ to SQL实体 创建 实体
LINQ to SQL 允许我们对数据库数据执行LINQ查 询。
实体(entity)是描述数据库表(或视图)的C#类。 可以使用一系列自定义特性(attribute),来将类和 属性(property)映射到表和列。我们将学习如何通 过手工和Object Relational Designer创建实体。
Copyright@2009 College of ITSoft (HDU) Version No: 2.0 8