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

[源码下载]

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

作者: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
[源码下载]

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏