下载此文档

LINQ 学习.doc


文档分类:IT计算机 | 页数:约39页 举报非法文档有奖
1/39
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/39 下载此文档
文档列表 文档介绍
#、查询语法等一系列新的特性,这些新的特性帮助我们将查询数据理解为一个类编程的理念。我们称这个总的查询编程模型为“LINQ”--语言集合查询。LINQ支持这样一个非常广泛的的扩展模型:该模型是针对不同的数据源而生成不同的高效的操作因子。.,XML、实体、数据集和数据库的支持的词典,它所要解决的就是对象不等于数据的问题。LINQ体系结构图如下:,LINQtoSQL其实就是LINQ对于数据库的支持,它是O/RM(对象关系映射),的类来生成一个关系型的数据库。然后你可以用LINQ对从该对象中对数据库进行查询,更新/插入/删除。LINQtoSQL完全支持事务,视图和存储过程。它还提供了一种方便地在你的数据模型中对集合数据验证和业务逻辑规则的进行验证的方法。在LINQtoSQL中,我们可以像下面的代码这样编写查询:Code1:AdventureWorksDWDataContextdb=newAdventureWorksDWDataContext();IEnumerable<DimCustomer>customers==="AW00011001"selectc;在正式学****LINQtoSQL之前,我们需要先来熟悉一下C#,这些新的特性也是为了LINQ而产生的。,局部变量被声明为var,这个声明被视为隐含类型局部变量声明,然后由编译器根据局部变量初始化表达式来推断变量的类型。如下面的声明:Code2:varinteger=10;varname="TerryLee";varnumbers=newint[]{1,2,3};要注意的是var在这里是仅仅是一个关键字,它并不是C#,而是负责告诉编译器,该变量需要根据初始化表达式来推断变量的类型,上面的语句相当于:intinteger=10;stringname="TerryLee";int[]numbers=newint[]{1,2,3};在Code2中,变量integer仍然具有强类型,可以做如下测试:Code4:varinteger=10;integer="TerryLee";编译时会报Cannotimplicitlyconverttype'string'to'int'错误。在这里我们将变量类型的推断任务交给了编译器,那就需要在声明的时候为变量赋值,也不能赋值为null,否则编译器也是无法推断的。另外,var只能用于局部变量,而不能用于字段和属性。,它可以使我们不用编写get/set操作以及字段,这一切都由编译其来完成。这样可以简化我们的代码,使我们的代码看起来更加的优雅。如下代码片断所示:Code5:lassCustomer{publicStringName{get;set;}publicintAge{get;set;}}lassDemo{publicstaticvoidMain(){Customerc=newCustomer();="TerryLee";}}在自动属性中,我们可以为get/set操作使用不同的访问级别,也就是说你可以这样去写:Code6:publicStringName{get;protectedset;},例如我们有一个Customer类:Code7:lassCustomer{publicStringName{get;set;}publicintAge{get;set;}}平时我们创建对象的常见模式是:Code8:lassDemo{publicstaticvoidMain(){Customerc=newCustomer();="TerryLee";=24;}}这样对每一个属性进行赋值,我们需要写很多行代码,而使用了对象初始化器之后,可以这样来写代码:Code9:lassDemo{publicstaticvoidMain(){Customerc=newCustomer(){Name="TerryLee",Age=24};}}这里需要注意的几个地方:一是对象初始化器允许只对其中的一部分对象进行赋值;二是允许和构造函数同时结合使用,并且构造函数的优先级高于对象初始化器;三是对象初始化器允许省略构造函数的括号。如下面的代码所示:Cod

LINQ 学习 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数39
  • 收藏数0 收藏
  • 顶次数0
  • 上传人zgs35866
  • 文件大小0 KB
  • 时间2016-01-06