首页 »DotNet » linq语句:LINQ体验(8)——LINQ to SQL语句的Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods »正文linq语句:LINQ体验(8)——LINQ to SQL语句的Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods来源: 发布时间:星期五, 2009年1月9日 浏览:18次 评论:0
我们继续讲解LINQ to SQL语句这篇我们来讨论Union All/Union/Intersect操作和Top/Bottom操作和Paging操作和SqlMethods操作
Union All/Union/Intersect操作 适用场景:对两个集合处理例如追加、合并、取相同项、相交项等等 Concat(连接) 介绍说明:连接区别集合不会自动过滤相同项;延迟 1.简单形式: var q = ( 语句描述:返回所有消费者和雇员电话和传真2.复合形式: var q = ( 语句描述:返回所有消费者和雇员姓名和电话Union(合并) 介绍说明:连接区别集合自动过滤相同项;延迟即是将两个集合进行合并操作过滤相同项 var q = ( 语句描述:查询顾客和职员所在国家Intersect(相交) 介绍说明:取相交项;延迟即是获取区别集合相同项(交集)即先遍历第个集合找出所有唯元素然后遍历第 2个集合并将每个元素和前面找出元素作对比返回所有在两个集合内都出现元素 var q = ( 语句描述:查询顾客和职员同在国家Except(和非) 介绍说明:排除相交项;延迟即是从某集合中删除和另个集合中相同项先遍历第个集合找出所有唯元素然后再遍历第 2个集合返回第 2个集合中所有未出现在前面所得元素集合中元素 var q = ( 语句描述:查询顾客和职员区别国家Top/Bottom操作 适用场景:适量取出自己想要数据不是全部取出这样性能有所加强 Take 介绍说明:获取集合前n个元素;延迟即只返回限定数量结果集 var q = ( 语句描述:选择所雇用前5个雇员Skip 介绍说明:跳过集合前n个元素;延迟即我们跳过给定数目返回后面结果集 var q = ( 语句描述:选择10种最贵产品的外所有产品TakeWhile 介绍说明:直到某条件成立就停止获取;延迟即用其条件去依次判断源序列中元素返回符合判断条件元素该判断操作将在返回false或源序列末尾结束 SkipWhile 介绍说明:直到某条件成立就停止跳过;延迟即用其条件去判断源序列中元素并且跳过第个符合判断条件元素旦判断返回false接下来将不再进行判断并返回剩下所有元素 Paging(分页)操作 适用场景:结合Skip和Take就可实现对数据分页操作 1.索引 var q = ( 语句描述:使用Skip和Take运算符进行分页跳过前50条记录然后返回接下来10条记录因此提供显示Products表第6页数据2.按唯键排序 var q = ( 语句描述:使用Where子句和Take运算符进行分页首先筛选得到仅50 (第5页最后个ProductID)以上ProductID然后按ProductID排序最后取前10个结果因此提供Products表第6页数据请注意此思路方法仅适用于按唯键排序情况SqlMethods操作 在LINQ to SQL语句中为我们提供了SqlMethods操作进步为我们提供了方便例如Like思路方法用于自定义通配表达式Equals用于相比较是否相等 Like 自定义通配表达式%表示零长度或任意长度串;_表示个;表示在某范围区间个;[^]表示不在某范围区间个比如查询消费者ID以“C”开头消费者 var q = from c in db.Customers 比如查询消费者ID没有“AXOXT”形式消费者:var q = from c in db.Customers DateDfDay 介绍说明:在两个变量的间比较分别有:DateDfDay、DateDfHour、DateDfMillisecond、DateDfMinute、DateDfMonth、DateDfSecond、DateDfYear var q = from o in db.Orders 语句描述:查询在创建订单后 10 天内已发货所有订单已编译查询操作(Compiled Query) 介绍说明:在的前我们没有好思路方法对写出SQL语句进行编辑重新查询现在我们可以这样做看下面个例子: //1.创建compiled query 语句描述:这个例子创建个已编译查询然后使用它检索输入城市客户0
相关文章
读者评论发表评论 |
|