当前位置:文档之家› SQL Server 2008数据编程概述

SQL Server 2008数据编程概述

SQL Server 2008数据编程概述
陈亮 ryan.chen@https://www.doczj.com/doc/6a3558794.html, 解决方案架构师 EMC Global Service Microsoft Practice

本次课程内容包括
? ? ? ? ? LINQ概述 概述 LINQ与数据访问 ADO .NET Framework概述 Project “Astoria” 如何使用SQL Server中的新数据类型

收听本次课程需具备的条件
? 了解.Net 解 Framework的基础概念 k的基础概念
– C#或Visual 或 Basic
? SQL Server数据查询编程的基础知识
Level 200

SQL Server 2008系列介绍
课程 SQL Server 2008数据管理平台部分 SQL Server 2008数据应用开发概述 SQL Server 2008 T-SQL新特性 SQL Server 2008对非关系型数据的支持 SQL Server 2008对地理信息的支持 SQL Server 2008商务智能部分 时间 共5场 3月20日到4月17日 2008-4-24 2008 4 24下午 2008-5-8 2008-5-15 2008-5-22 共4场 5月29日到6月29日

LINQ简介
? LINQ名字的来历
– Language INtegrated Query
? LINQ允许开发人员使用类似SQL的语法查询数据结构 ? Visual Studio 2008中C#和Visual Basic都支持LINQ
//Create an array of integers int[] myarray =new int [] {1,2,3,4,5,6,7,8,9,10}; //Create a query for odd numbers, sorted in descending order var oddNumbers = from i in myarray where i % 2 == 1 orderby i descending select i; //Display the results of the the query foreach (int i in oddNumbers) Console.WriteLine(i);

DEMO
通过LINQ查询数组

支持LINQ的集合
? 标准的Ienumerable类 标准的 bl 类
– Array, HashTable,List
? LINQ to DataSet
– 支持非强类型化的DataSet以及强类型的DataSet 支 强类 以及强类
? LINQ to XML ? 数据访问技术
– LINQ to SQL, LINQ to Entities

LINQ to DataSet
? 增强的DataSet类可以支持LINQ 增 的 类 以支持
– 非强类型化的DataSet和强类型化的DateSet 非强类型化的 和强类型化的
Dim ordersQuery = From o In dataSet.Orders _ Where o.CustomerID = “ALFKI” _ Select o For Each o As NorthwindDataSet.OrdersRow In ordersQuery Console.WriteLine(“{0} {1, 10:d}”, _ o OrderID o.OrderDate) o OrderDate) o.OrderID, Next o

DEMO
LINQ to DataSet

LINQ to DataSet
? 在Visual 在 i l Studio S di 2008以及.NET 2008以 3 中进行支持 3.5中进行支持 ? 用户收益
– 不影响原有.Net 2.0的代码 – 支持DataSet中原来不支持的查询功能 支 中原来不支 功 – 返回结果为DataRows或者匿名类型 ? 限制
– 所有代码都在客户端进行处理

LINQ to SQL
? LINQ针对SQL 针对 Server数据库的实现 数据库的实 ? 便于用户快速开发 ? 提供SQL Server数据架构到应用模型的映 射
– 类对应表,属性对应列
? 将LINQ查询转换为T-SQL查询 ? 将返回结果转换为对象 ? 支持跟踪以及递交更新

DEMO
LINQ to SQL

LINQ to SQL
? 由Visual 由 l Studio d 2008以及.Net 以 3.5提供 提供 ? 用户收益
– 适应快速应用开发 – 在服务器端执行查询 – 映射设计器可以简化类到表的映射关系设计
? 限制
– 仅支持SQL Server数据库 – 仅支持少数映射关系

LINQ to Entities
? LINQ针对实体数据模型的实现 针对实体数据模型的实 ? 什么是实体数据模型(Entity Data Model)
– 一种用于定义应用程序模型的方法 – 用于建立应用程序模型和数据架构之间的映射 – 支持企业级的映射需求
? 单个类映射到多张数据表 ? 映射到不同的继承类型 ? 直接建立多对多映射关系,不需要中间表类

LINQ to SQL vs vs. LINQ to Entities
? LINQ to SQL
– – – – – – – – – – 随Visual Studio 2008以及.Net 3.5发布 主要用于快速应用开发 满足许多轻量级应用需求 支持SQL 支持 Q Server数据库 数据库 随SQL Server 2008以及.Net 3.5 SP1发布 为第三方数据库提供接口 针对企业级应用需求 为数据库编程提供高层次的数据抽象能力 作为微软数据平台的长期策略的重要组成部分 作为ADO .Net Net Entity Framework中的一层 Framework中的 层
? LINQ to Entities

DEMO
LINQ to Entities

LINQ to Entities
? LINQ to Entities如何转换LINQ查询 如何转换 查询
– 编译器将代码转换为LINQ表达式树 编译器将代码转换为 Q表达式树 – LINQ to Entities根据映射信息将LINQ表达式 树转换为DbCommandTree – ADO .Net将DbCommandTree转换为 DbCommand – LINQ to Entities执行DbCommand并且将结 果封装成LINQ查询中指定的格式

LINQ to Entities
? 将随 将随Visual l Studio d 2008 SP1和.Net 和 3.5 发布 SP1发布
– 时间表未定
? 用户收益
– 提供第三方数据库的LINQ接口 – 为企业级需求设计 – 高层次的数据抽象 – 微软数据平台长期目标的重要组成部分

ADO .NET NET 3 3.5实体框架 5实体框架
? 实体化模型(E 实体化模型(Entity i D Data Model EDM)的最初实现 ? 包括基于文本的查询语言 (Entity SQL) ? 新的提供程序 - Entity Client ? 新的ORM栈 ? 支持LINQ ? 作为ADO .NET的革新 NET的革新
LINQ to Entities Object Services Entity Client LINQ to DataSet DataSet
ADO .NET Provider

Project Astoria
? 轻量级数据访问API 轻量级数据访问
– 通过URI访问数据
h http://emc-demo/data.svc/Customers[ALFKI]/Orders // d /d /C [ALFKI]/O d
? 主要针对Web开发技术
– Silverlight以及AJAX – 返回的数据格式便于Web应用
? XML,JSON,RDF
? Astoria联机服务已经发布
– 实验性的数据存储服务

相关主题
文本预览
相关文档 最新文档