您的位置:首页 > 职场人生

再接再厉VS 2008 sp1 + .NET 3.5 sp1系列文章索引

2009-02-26 08:10 603 查看
[源码下载]

[align=center]再接再厉VS 2008 sp1 + .NET 3.5 sp1系列文章索引[/align]

作者:webabcd

介绍
再接再厉VS 2008 sp1 + .NET 3.5 sp1系列文章索引:ADO.NET Entity Framework(实体框架), ADO.NET Data Services(数据服务), Dynamic Data(动态数据)

1、再接再厉VS 2008 sp1 + .NET 3.5 sp1(1) - Entity Framework(实体框架)之添加、查询、更新和删除的Demo
介绍
以Northwind为示例数据库,ADO.NET Entity Framework之完全面向对象的添加操作、查询操作、更新操作和删除操作

ADO.NET Entity Framework(EF) - 就当是微软的ORM吧,可以将概念模型映射到逻辑模型,从而使用概念模型做开发
Entity - 在EF中就是实体的概念
Entity Data Model(EDM) - 实体数据模型,表现为一组映射到数据源的实体和关系
LINQ to Entities - 和LINQ to XXX一样,对EF中的实体做LINQ
Entity SQL(ESQL) - 一种类似sql的查询语言,针对概念模型做查询
csdl - Conceptual schema definition language 概念架构定义语言
ssdl - Store schema definition language 存储架构定义语言
msl - Mapping specification language 映射规范语言
csdl, ssdl, msl均为基于XML的语言。.edmx文件同时包含这3种语言所描述的信息
Entity - 实体
Entity Class - 实体类。至少要有一个实体键(Key Properties)
Entity Set - 实体集。实体集中包含着若干实体
Association - 关联。实体类之间的关系。导航属性就是由关联来定义的
Association Set - 关联集。关联集中包含着若干关联
Entity Container - 实体容器。实体容器中包含着若干实体集和关联集
概念模型中必须要有实体键,实体键与表中的主键相对应,所以表中必须要有主键
存储模型的字段如果有主键键或非空约束,则概念模型中必需要有相应的属性与之映射
概念模型中存在的属性,必须在存储模型中有与之映射的字段
作为映射条件的字段不能映射到属性上
要实现继承的话,就要使用映射条件来进行筛选
EntityConnection - 与存储模型的连接。相当于SqlConnection
EntityCommand - 对 EDM 执行的命令。相当于SqlCommand
EntityDataReader - 以只读、只进的数据流的方式获取数据(内存中始终只有一行)。相当于SqlDataReader

2、再接再厉VS 2008 sp1 + .NET 3.5 sp1(2) - Entity Framework(实体框架)之详解 Linq To Entities 之一
介绍
以Northwind为示例数据库,ADO.NET Entity Framework之Linq To Entities

First - 返回集合中的第一个成员;不延迟
FirstOrDefault - 返回集合中的第一个成员(找不到则返回null);不延迟
All - 是否集合中所有成员都满足某一条件;不延迟
Any - 集合中是否有成员满足某一条件;不延迟
Average - 取平均值;不延迟
Sum - 求和;不延迟
Max - 取最大值;不延迟
Min - 取最小值;不延迟
Count - 取指定集合的成员数,返回值类型int;不延迟
LongCount - 取指定集合的成员数,返回值类型long;不延迟
Take - 获取集合的前 n 个成员;延迟
Skip - 跳过集合的前 n 个成员;延迟(Linq To Entities 需要先排序才能 Skip)
Distinct - 过滤集合中的相同项;延迟
Union - 连接不同集合,自动过滤相同项;延迟
UnionAll - 连接不同集合,不会自动过滤相同项;延迟
Concat - 连接不同集合,不会自动过滤相同项;延迟
Intersect - 获取不同集合的相同项(交集);延迟
Except - 从某集合中删除其与另一个集合中相同的项;延迟

3、再接再厉VS 2008 sp1 + .NET 3.5 sp1(3) - Entity Framework(实体框架)之详解 Linq To Entities 之二
介绍
以Northwind为示例数据库,ADO.NET Entity Framework之Linq To Entities

Select - 选择需要返回的字段
Where - 筛选
OrderBy - 正序排序
OrderByDescending - 倒序排序
ThenBy - 在 OrderBy 或 OrderByDescending 的基础上再正序排序
ThenByDescending - 在 OrderBy 或 OrderByDescending 的基础上再倒序排序
GroupBy - 分组
Join - 连接
GroupJoin - 连接后分组

4、再接再厉VS 2008 sp1 + .NET 3.5 sp1(4) - Entity Framework(实体框架)之EntityClient, ObjectQuery
介绍
以Northwind为示例数据库,ADO.NET Entity Framework之详解EntityClient, ObjectQuery

EntityConnection - 与存储模型的连接
EntityCommand - 对 EDM 执行的命令
EntityParameter - 配置 EntityCommand 的参数
EntityDataReader - 以只读、只进的数据流的方式获取数据(内存中始终只有一行)。相当于SqlDataReader
ObjectQuery<T> - 通过 Entity SQL 或 查询语法 或 Linq 方法对概念模型做查询
ObjectContext.CreateQuery<T>(Entity SQL) - 根据 esql 创建一个 ObjectQuery<T> 。(延迟)

5、再接再厉VS 2008 sp1 + .NET 3.5 sp1(5) - Entity Framework(实体框架)之ObjectContext
介绍
以Northwind为示例数据库,ADO.NET Entity Framework之详解ObjectContext, 以及事务和并发

ObjectContext - 以对象(这些对象是 EDM 中定义的实体类型的实例)的形式与数据进行交互
CreateObjectName - 实体类 的 CreateObjectName 静态方法用于创建实体类的新实例
AddToEntitySetName() - 将需要添加的对象添加到对象上下文中
SaveChanges() - 将所有更新保存到相关存储区中
Attach()/AttachTo() - 附加外部实体到上下文中
ObjectContext.Refresh() - 更新上下文数据
ObjectStateEntry - 维护实体状态的类
ObjectStateManager - 实体状态管理器

6、再接再厉VS 2008 sp1 + .NET 3.5 sp1(6) - Entity Framework(实体框架)之Entity SQL
介绍
以Northwind为示例数据库,ADO.NET Entity Framework之详解Entity SQL

Linq 方法上也可以使用 esql
查询表达式

select, from, where, order by, group by, having
cross join, inner join, left outer join, right outer join, full outer join
case when then else end

集合运算符

anyelement(expression) - 从集合中提取任意元素
except - 从左侧表达式的结果中删除其与右侧表达式结果中的相同项,并返回此结果
flatten(collection) - 将多个集合组成的集合转换为一个集合
intersect - 返回运算符两侧查询结果的相同项
[not] exists(expression) - 确定查询结果是否存在
[not] in {,} - 确定某值是否在某集合中
overlaps - 确定运算符两侧查询结果是否具有相同项
set(expression) - 移除重复项
union - 将运算符两侧查询结果连接成一个集合(移除重复项)
union all - 将运算符两侧查询结果连接成一个集合(包括重复项)
top(n) - 取前 n 条记录

分页运算符

skip n - 需要跳过的项数,结合 order by 使用
limit n - 需要选择的项数,结合 order by 使用

类型运算符

cast(expression as data_type) - 将表达式转换为另一种数据类型(使用 EntityCommand 执行查询,返回 EDM 类型;使用 ObjectQuery 执行查询,返回 CLR 类型)
oftype - 从查询表达式返回指定类型的对象集合,需 EDM 中继承关系的支持
is of - 确定表达式的类型是否为指定类型或指定类型的某个子类型,需 EDM 中继承关系的支持
treat - 将指定基类型的对象视为指定派生类型的对象,需 EDM 中继承关系的支持

常用运算符

算术运算符

+
-(减或负)
*
/
%

比效运算符

>, >=, <, <=, <>, !=
is null, is not null
between and, not between and
like, not like

通配符(应用于 like 和 not like)

% - 零个或零个以上的任意字符
_ - 任意单个字符
[] - 在指定范围 [a-f] 或集合 [abcdef] 中的任意单个字符
[^] - 不在指定范围 [^a-f] 或集合 [^abcdef] 中的任意单个字符

逻辑运算符

and, &&
or, ||
not, !

其他字符

-- - 注释
. - 成员访问
; - 分行
+ - 串联字符串

函数

函数 - 聚合函数

Avg(expression) - 非 null 的平均值
Count(expression) - 记录总数(Int64)
BigCount(expression) - 记录总数(Int32)
Max(expression) - 非 null 的最大值
Min(expression) - 非 null 的最小值
Sum(expression) - 非 null 的总和值
StDev(expression) - 非 null 的标准偏差值(相对于平均值的标准偏差)

函数 - 数学函数

Abs(value) - 取绝对值
Ceiling(value) - 取不小于参数的最小整数
Floor(value) - 取不大于参数的最大整数
Round(value) - 取参数的整数部分

函数 - 字符串函数

Left(string, length) - 从左侧开始,取 string 的前 length 个字符
Right( tring, length) - 从右侧开始,取 string 的前 length 个字符
LTrim(string) - 去掉 string 的左侧的空白
RTrim(string) - 去掉 string 的右侧的空白
Trim(string) - 去掉 string 的两侧的空白
ToLower(string) - 将 string 全部转换为小写
ToUpper(string) - 将 string 全部转换为大写
Concat(string1, string2) - 串联 string1 和 string2
Replace(string1, string2, string3) - 将 string1 中的所有 string2 都替换为 string3
Reverse(string) - 取 string 的反序
Substring(string, start, length) - 从 string 的 start 位置开始取 length 个字符,索引从 1 开始
IndexOf(string1, string2) - string1 在 string2 中的位置,索引从 1 开始,若找不到则返回 0

函数 - 日期和时间函数

Year(expression) - 取时间的年的部分
Month(expression) - 取时间的月的部分
Day(expression) - 取时间的日的部分
Hour(expression) - 取时间的时的部分
Minute(expression) - 取时间的分的部分
Second(expression) - 取时间的秒的部分
Millisecond(expression) - 取时间的毫秒的部分(0 - 999)
CurrentDateTime() - 取服务器的当前时间
CurrentUtcDateTime() - 取服务器的 UTC 当前时间
CurrentDateTimeOffset() - 返回值类型为 DateTimeOffset , 取当前时间及相对于 UTC 时间的差值

函数 - 按 位 运算的函数

BitWiseAnd(value1, value2) - 取 value1 和 value2 的位与结果
BitWiseOr(value1, value2) - 取 value1 和 value2 的位或结果
BitWiseXor(value1, value2) - 取 value1 和 value2 的位异或结果
BitWiseNot(value) - 取 value 的位求反结果

函数 - 其它函数

NewGuid() - 返回新生成的 GUID

不常用运算符

row, multiset, createref, deref, key, ref, navigate

7、再接再厉VS 2008 sp1 + .NET 3.5 sp1(7) - Data Services(数据服务)
介绍
以Northwind为示例数据库,演示ADO.NET Data Services(数据服务)

DataService - ADO.NET 数据服务的主入口点。 T 为数据源类名
IDataServiceConfiguration.SetEntitySetAccessRule(string name, EntitySetRights rights) - 为指定实体集设置访问规则
QueryInterceptorAttribute - 声明在方法上的查询拦截器
DataServiceContext - 数据服务的上下文
DataServiceQuery - 以指定的 URI 语法查询数据服务

8、再接再厉VS 2008 sp1 + .NET 3.5 sp1(8) - Dynamic Data(动态数据)
介绍
以Northwind为示例数据库,演示Dynamic Data(动态数据)

MetaModel - 数据库和域对象之间的映射的抽象
MetaModel.RegisterContext() - 使用指定的配置上下文注册指定的数据上下文
Scaffold - 译为基架。即基于数据库架构(linq to sql 或 entity framework)生成网页模板的机制
ScaffoldTableAttribute(false) - 隐藏指定的表
ScaffoldColumn(false) - 隐藏指定的字段
MetadataTypeAttribute(Type metadataClassType) - 指定要与数据模型类关联的元数据类
DynamicField - 显示指定的动态数据字段,相当于 BoundField
DynamicControl - 通过指定的字段模板显示指定的动态数据字段

OK
[源码下载]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息