/**************OrderBy ,Groupby练习*******************/
           
            //按学生的总分数按降序排列排序
            var list = from s in ctx.T_Student
                       join c in ctx.T_Score
                       on s.stuNumber
                       equals c.stuNumber
                       into temp
                       from t in temp
                       orderby temp.Sum(k => k.score) descending
                       select new {
                        stuName = s.stuName,
                        scoreSum = temp.Sum(k=>k.score)
                       };
            //对学生的年龄和姓名进行排序
            var list1 = from s in ctx.T_Student
                       orderby s.stuSex,s.stuName descending
                       select s;
            //对于上边的可以用lambda进行简化
            var list2 = ctx.T_Student.OrderBy(s => s.stuAge).ThenBy(k=>k.stuName);
            //也可以用连续的orderBy进行排序,不过级联方式是逆序,上边的list2可以这样表示
            var list3 = ctx.T_Student.OrderBy(s => s.stuName).OrderBy(k=>k.stuAge);
            //对orderby排序要注意的地方是只能对基本数据类型进行排序,不能对类型,以及匿名类进行排序,否则的话会抛异常

//每门课程分数最高的分数,并按课程号进行排序
            var list4 = from s in ctx.T_Score
                        group s by s.courceNumber
                            into g
                            orderby g.Key
                            select new
                            {
                                courceNumber = g.Key,
                                coreForCourse = from f in g
                                                where f.score == g.Max(n => n.score)
                                                select f
                            };
            //下面着重对groupby进行案列练习,对分数按课程号进行分组
            var list5 = from s in ctx.T_Score
                        group s by s.courceNumber
                            into temp1
                            select temp1;
            //每门课程的最高分数
            var list6 = from s in ctx.T_Score
                        group s by s.courceNumber
                            into temp1
                            select new {
                                courseNumber = temp1.Key,
                                maxCourece = temp1.Max(k=>k.score)
                            };
            //分组的条件也可以是自定义的表达式,如下
            var list7 = from s in ctx.T_Score
                        group s by s.score + 10
                            into g
                            select g;

//也可以对多列进行分组
            var list8 = from s in ctx.T_Score
                        group s by new
                        {
                            s.courceNumber,
                            s.stuNumber
                        } into g
                        select new {
                            g.Key,
                            g
                        };

Linq无聊练习系列5--OrderBy ,Groupby练习的更多相关文章

  1. Linq无聊练习系列8---开放式并发事务,null和 DateTime,string操作练习

    /*********************开放式并发事务,null和 DateTime,string操作练习**********************************/ //所谓并发,就是 ...

  2. Linq无聊练习系列6--Any/All/Contains/Concat/Union/Intersect/Except/take/skip/SqlMethods操作练习

    /*********************Any/All/Contains/Concat/Union/Intersect/Except/take/skip/SqlMethods操作练习******* ...

  3. Linq无聊练习系列1--where练习

    linq主要有3种,linq to sql,linq to XML,Linq to Object linq to sql. 这里没有通过相应的类,生成相应的数据库中的表.没有用流行的编码优先. 只是为 ...

  4. Linq无聊练习系列7----Insert,delete,update,attach操作练习

    /*********************Insert,delete,update,attach操作练习**********************************/            ...

  5. Linq无聊练习系列4--join练习

    /**************join 练习*******************/            //对于1对多关系            var list =from c in ctx.T ...

  6. Linq无聊练习系列3--聚合函数练习

    /**************聚合函数 练习*******************/            //求学生的总数量            var list = ctx.T_Student. ...

  7. Linq无聊练习系列2--select/distinct练习

    void dataBindByWhere()        { /**************select/distinct 练习*******************/            //获 ...

  8. EF C# ToPagedList方法 The method 'Skip' is only supported for sorted input in LINQ to Entities. The method 'OrderBy' must ……

    报错信息:The method 'Skip' is only supported for sorted input in LINQ to Entities. The method 'OrderBy' ...

  9. LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据

    http://www.cnblogs.com/yukaizhao/archive/2010/05/13/linq_to_sql_1.html LINQ和 LINQ to SQL 都已经不是一个新事物了 ...

随机推荐

  1. java数据结构系列——排列(2):有序阵列

    package Array; /** * 对数组排序.当添加到阵列保持有序数组元素: * @author wl * */ public class MyOrderArray { private lon ...

  2. tomcat如何避免遭遇ClassNotFoundException

    于Tomcat紧接着为什么要创建一个类加载器Thread.currentThread().setContextClassLoader(catalinaLoader)?这里加载失败主要是为了避免以后加载 ...

  3. 使用linux服务logrotate文件tomcat日志文件

    使用notepad++编辑本地文件 tomcat: /usr/tomcat/logs/catalina.out { copytruncate daily dateext nocompress miss ...

  4. NSOJ 飞船汇合(经典)

    一支分散的飞船舰队,需要汇合到主舰,但是这种飞船在太空中飞行的耗油与质量没有关系,只与发动机打开的时间有关系,为了节省油量,指挥官通知,汇合途中,多台飞船可以串成串飞行,这样只需启动一台发动机,由于安 ...

  5. GG同步sqlserver报错一个案例 Invalid date format

    在里面Oracle表同步sqlserver时间,在sqlserver当应用程序数据的结束.您可能会遇到这个错误. 2014-05-17 17:20:24 WARNING OGG-01154 SQL e ...

  6. 无废话WCF入门教程二[WCF应用的通信过程]

    一.概述 WCF能够建立一个跨平台的安全.可信赖.事务性的解决方案,是一个WebService,.Net Remoting,Enterprise Service,WSE,MSMQ的并集,有一副很经典的 ...

  7. STL 源代码分析 算法 stl_algo.h -- binary_search

    本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie binary_search -------------------------------- ...

  8. 脉冲神经网络Spiking neural network

    (原文地址:维基百科) 简单介绍: 脉冲神经网络Spiking neuralnetworks (SNNs)是第三代神经网络模型,其模拟神经元更加接近实际,除此之外,把时间信息的影响也考虑当中.思路是这 ...

  9. 財智V6.0(完美破解序列号特别版)

    財智V6.0(完美破解序列号特别版)               財智V6.0(完美破解序列号特别版)   財智6是眼下唯一在中央台报道的.比較成熟的国产理財软件.能全面管理家庭的日常收入.消费.储蓄 ...

  10. WebView Android 调用js且须要获取返回结果

    Android webView调用js方法非常easy, webView.loadUrl("javascrpt:yourFunction()"); 可是此方法没有办法获取返回结果 ...