第9章LINQ运算符.doc

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章LINQ运算符.doc

第9章 LINQ运算符 本章将逐一描述LINQ查询运算符。作为参考,“9.3 投影”和“9.4 联接”两节会提及几个概念领域: ? 投影对象层次 ? 用Select、SelectMany、Join和GroupJoin进行联接 ? 查询内涵式语法中的外部迭代变量 本章的所有示例都采用如下定义的names数组: string[] names = { Tom, Dick, Harry, Mary, Jay }; 使用LINQ to SQL技术的示例采用一个类型化为DataContext的变量,名为dataContext: var dataContext = new DemoDataContext( ); ... public class DemoDataContext : DataContext { public DemoDataContext (string cxString) : base (cxString) {} public TableCustomer Customers { get { return GetTableCustomer( ); } } public TablePurchase Purchases { get { return GetTablePurchase( ); } } } [Table] public class Customer { [Column(IsPrimaryKey=true)] public int ID; [Column] public string Name; [Association (OtherKey=CustomerID)] public EntitySetPurchase Purchases = new EntitySetPurchase( ); } [Table] public class Purchase { [Column(IsPrimaryKey=true)] public int ID; [Column] public int? CustomerID; [Column] public string Description; [Column] public decimal Price; [Column] public DateTime Date; EntityRefCustomer custRef; [Association (Storage=custRef,ThisKey=CustomerID,IsForeignKey=true)] public Customer Customer { get { return custRef.Entity; } set { custRef.Entity = value; } } } 代码中所显示的LINQ to SQL实体类,是自动化的工具所生成的类的简化版,少了部分代码。这部分代码关联双方的实体被重新指定时,更新关联的另一方。 这是以上实体类相对应的SQL表定义: create table Customer ( ID int not null primary key, Name varchar(30) not null ) create table Purchase ( ID int not null primary key, CustomerID int references Customer (ID), Description varchar(30) not null, Price decimal not null ) 9.1 概述 本节,我们概括性地描述C# 3.0所支持的查询运算符。C#查询运算符一般都属于三类中的一种,这是这三种分类的简单表示: ? 输入集合,输出集合(集合到集合) ? 输入集合,输出单个元素或标量值 ? 输入单个元素或标量值,输出集合 我们先列出这三大类别中的每一类及其包含的查询运算符,然后我们再详细介绍各个查询运算符。 9.1.1 集合(集合 大多数查询运算符接收一个或多个输入集合,得到一个或多个输出集合。图9-1阐明了重组集合形状的查询运算符。 图9-1 改变形状的运算符 1. 筛选 IEnumerableTSource ( IEnumerableTSource 返回原始集合的子集: Where, Take, TakeWhile, Skip, SkipWhile, Dis

您可能关注的文档

文档评论(0)

wsh1288 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档