LINQ体验(8)——LINQ to SQL语句之Union AllUnionIntersect和TopBottom和Paging和SqlMethods

LINQ体验(8)——LINQ to SQL语句之Union AllUnionIntersect和TopBottom和Paging和SqlMethods

ID:38583233

大小:42.00 KB

页数:6页

时间:2019-06-15

LINQ体验(8)——LINQ to SQL语句之Union AllUnionIntersect和TopBottom和Paging和SqlMethods_第1页
LINQ体验(8)——LINQ to SQL语句之Union AllUnionIntersect和TopBottom和Paging和SqlMethods_第2页
LINQ体验(8)——LINQ to SQL语句之Union AllUnionIntersect和TopBottom和Paging和SqlMethods_第3页
LINQ体验(8)——LINQ to SQL语句之Union AllUnionIntersect和TopBottom和Paging和SqlMethods_第4页
LINQ体验(8)——LINQ to SQL语句之Union AllUnionIntersect和TopBottom和Paging和SqlMethods_第5页
资源描述:

《LINQ体验(8)——LINQ to SQL语句之Union AllUnionIntersect和TopBottom和Paging和SqlMethods》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、我们继续讲解LINQtoSQL语句,这篇我们来讨论UnionAll/Union/Intersect操作和Top/Bottom操作和Paging操作和SqlMethods操作。UnionAll/Union/Intersect操作适用场景:对两个集合的处理,例如追加、合并、取相同项、相交项等等。Concat(连接)说明:连接不同的集合,不会自动过滤相同项;延迟。1.简单形式:varq=(fromcindb.Customersselectc.Phone).Concat(fromcindb.Customersselectc.Fax)

2、.Concat(fromeindb.Employeesselecte.HomePhone);语句描述:返回所有消费者和雇员的电话和传真。2.复合形式:varq=(fromcindb.Customersselectnew{Name=c.CompanyName,c.Phone}).Concat(fromeindb.Employeesselectnew{Name=e.FirstName+""+e.LastName,Phone=e.HomePhone});语句描述:返回所有消费者和雇员的姓名和电话。Union(合并)说明:连接不同的

3、集合,自动过滤相同项;延迟。即是将两个集合进行合并操作,过滤相同的项。varq=(fromcindb.Customersselectc.Country).Union(fromeindb.Employeesselecte.Country);语句描述:查询顾客和职员所在的国家。Intersect(相交)说明:取相交项;延迟。即是获取不同集合的相同项(交集)。即先遍历第一个集合,找出所有唯一的元素,然后遍历第二个集合,并将每个元素与前面找出的元素作对比,返回所有在两个集合内都出现的元素。varq=(fromcindb.Custom

4、ersselectc.Country).Intersect(fromeindb.Employeesselecte.Country);语句描述:查询顾客和职员同在的国家。Except(与非)说明:排除相交项;延迟。即是从某集合中删除与另一个集合中相同的项。先遍历第一个集合,找出所有唯一的元素,然后再遍历第二个集合,返回第二个集合中所有未出现在前面所得元素集合中的元素。varq=(fromcindb.Customersselectc.Country).Except(fromeindb.Employeesselecte.Count

5、ry);语句描述:查询顾客和职员不同的国家。Top/Bottom操作适用场景:适量的取出自己想要的数据,不是全部取出,这样性能有所加强。Take说明:获取集合的前n个元素;延迟。即只返回限定数量的结果集。varq=(fromeindb.Employeesorderbye.HireDateselecte).Take(5);语句描述:选择所雇用的前5个雇员。Skip说明:跳过集合的前n个元素;延迟。即我们跳过给定的数目返回后面的结果集。varq=(frompindb.Productsorderbyp.UnitPricedesce

6、ndingselectp).Skip(10);语句描述:选择10种最贵产品之外的所有产品。TakeWhile说明:直到某一条件成立就停止获取;延迟。即用其条件去依次判断源序列中的元素,返回符合判断条件的元素,该判断操作将在返回false或源序列的末尾结束。SkipWhile说明:直到某一条件成立就停止跳过;延迟。即用其条件去判断源序列中的元素并且跳过第一个符合判断条件的元素,一旦判断返回false,接下来将不再进行判断并返回剩下的所有元素。Paging(分页)操作适用场景:结合Skip和Take就可实现对数据分页操作。1.索

7、引varq=(fromcindb.Customersorderbyc.ContactNameselectc).Skip(50).Take(10);语句描述:使用Skip和Take运算符进行分页,跳过前50条记录,然后返回接下来10条记录,因此提供显示Products表第6页的数据。2.按唯一键排序varq=(frompindb.Productswherep.ProductID>50orderbyp.ProductIDselectp).Take(10);语句描述:使用Where子句和Take运算符进行分页,首先筛选得到仅50(

8、第5页最后一个ProductID)以上的ProductID,然后按ProductID排序,最后取前10个结果,因此提供Products表第6页的数据。请注意,此方法仅适用于按唯一键排序的情况。SqlMethods操作在LINQtoSQL语句中,为我们提供了SqlMethods操作,进一步为

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。