training ii:linq2sql

8
——LINQ 2 SQL 朱晔 2010年10月 .NET 3.5系列培训(二)

Upload: powerzhuye

Post on 17-Jul-2015

4.094 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Training ii:linq2sql

——LINQ 2 SQL

朱晔

2010年10月

.NET 3.5系列培训(二)

Page 2: Training ii:linq2sql

内容概要

LINQ 2 SQL概览

LINQ 2 SQL使用 各种查询方法 支持的翻译 数据修改和存储过程 结合传统方式的使用

LINQ 2 SQL特性 延迟 并发 事务 继承 关系

LINQ 2 SQL其它Tip

此次课程的例子包含100个左右的例子,覆盖了LINQ2SQL方方面面

Page 3: Training ii:linq2sql

LINQ 2 SQL概览

ORM 定义:是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。

常见框架:Subsonic,Nhibernate,Entity Framework,LINQ2SQL

LINQ 2 SQL概览 基本使用过程 日志功能 分部方法 元数据 创建数据库 简单的增删改

Page 4: Training ii:linq2sql

LINQ 2 SQL使用

查询方法 Usage

限制: Where (in, or ,and)

投影: Select (CASE), SelectMany

排序: OrderBy, ThenBy, OrderByDescending, ThenByDescending,

Reverse

连接: Join, GroupJoin

分组: GroupBy (看似groupby的例子)

组: Zip, Distinct, Union, Intersect, Except, Concat

聚合: Aggregate, Count, LongCount, Sum, Min, Max, Average

分区: Take, Skip, TakeWhile, SkipWhile

转换: Cast

相等: SequenceEqual

元素: First, FirstOrDefault, Last, LastOrDefault, Single, SingleOrDefault,

ElementAt, ElementAtOrDefault, DefaultIfEmpty

限定: Any, All, Contains

SqlMethods:Like, DateDiffxxx

Page 5: Training ii:linq2sql

LINQ 2 SQL使用

支持的翻译

一些基本的比较运算

部分.NET字符串方法

CompareTo() Concat() Contains() EndsWith() Equals() IndexOf()

Insert() LastIndexOf() Length PadLeft() PadRight() Remove()

Replace() StartsWith() String() constructor Substring()

ToLower() ToUpper() Trim()

大多数Math类的方法

大多数转换方法:

bool byte short int long float double decimal char string DateTime

DateTime 的一部分方法

TimeSpan 的一部分方法

SqlMethods的所有方法

一部分IEnumerable<T>中的方法,比如Contians()

查询方法

Page 6: Training ii:linq2sql

LINQ 2 SQL使用

数据修改 Usage2 对象标识 改动跟踪 改动提交

结合传统方式的使用 Usage2

存储过程 Usage3 标量/单结果集/多结果集 增删改使用存储过程

自定义函数 Usage3

2/8原则

Page 7: Training ii:linq2sql

LINQ 2 SQL特性 延迟 Features

演示延迟执行 演示级联延迟加载 演示字段延迟加载 通过LoadWith来强制加载级联对象 通过AssociateWith来限制级联加载的对象 演示关闭延迟加载

并发 Features2 演示并发 通过UpdateCheck进行列乐观并发控制 处理并发(三层粒度) 时间戳列

事务(DataContext自动实现事务) Features2

继承 Features3

关系 Features3

Page 8: Training ii:linq2sql

LINQ 2 SQL其它Tip

已编译查询

外部映射文件 SqlMetal.exe

探究查询

显式打开连接