• 查询中常用的扩展方法


    先来看一下我们的表结构:

    首先毫无疑问的要创建我们的上下文对象:

    using (var db = new Entities())
    {
        //执行操作
    }

    Average 平均值:

    //查询平均分
    Console.WriteLine("平均分:"+db.Student.Average(v=>v.Score));

    Max 最大值:

    //查询最高分
    Console.WriteLine("最高分:"+db.Student.Max(v=>v.Score));

    Min 最小值:

    //查询最低分
    Console.WriteLine("最低分:"+db.Student.Min(v=>v.Score));

    Sum 求和:

    //查询总分
    Console.WriteLine("总分:"+db.Student.Sum(v=>v.Score));

    Count 数量:

    //查询学生个数
    Console.WriteLine("个数:"+db.Student.Count());

    执行结果:

    Contains 包含:

    复制代码
    //查询名字中包含 小 字的学生
    Console.WriteLine("=====打印所哟名字包含 小 的学生=====");
    var query = db.Student.Where(v => v.StudentName.Contains("小"));
    foreach(var st in query)
    {
        Console.WriteLine(st.StudentName);
    }
    复制代码

    Distinct 去重:

    复制代码
    //去重复
    Console.WriteLine("=====打印所有学生分数 去重=====");
    var query2 = db.Student.Select(v=>v.Score).Distinct();
    foreach (var st in query2)
    {
        Console.WriteLine(st);
    }
    复制代码

    执行结果:

    Take 取出指定个数

    复制代码
    //查询前3条记录
    Console.WriteLine("=====查询前几条记录==========");
    var query3 = db.Student.Take(3);
    foreach (var st in query3)
    {
        Console.WriteLine(st.StudentID+" "+st.StudentName);
    }
    复制代码

    Skip 跳过指定个数

    复制代码
    //跳过前3条记录
    Console.WriteLine("======跳过前N条记录=======");
    var query4 = db.Student.OrderBy(v=>v.StudentID).Skip(3); //调用Skip方法之前必须使用 OrderBy排序 否则报错。
    foreach (var st in query4)
    {
        Console.WriteLine(st.StudentID + " " + st.StudentName);
    }
    复制代码

    结合使用 Skip 和 Take

    复制代码
    //查询3-6条记录
    Console.WriteLine("=====查询2-4条记录==========");
    var query5 = db.Student.OrderBy(v=>v.StudentID).Take(4).Skip(1);//先取出4条记录 --> 再 排除1条 共3条
    foreach (var st in query5)
    {
        Console.WriteLine(st.StudentID + " " + st.StudentName);
    }
    复制代码

    颠倒顺序,结果不同:

    复制代码
    //查询3-6条记录
    Console.WriteLine("=====查询2-5条记录==========");
    var query6 = db.Student.OrderBy(v => v.StudentID).Skip(1).Take(4);//先排除1条 --> 再取出4条记录 共4条
    foreach (var st in query6)
    {
        Console.WriteLine(st.StudentID + " " + st.StudentName);
    }
    复制代码

    说明: Skip().Take() 是先排除,再取数据。 Take().Skip() 是先取数据再排除,他们返回的个数不同。

  • 相关阅读:
    转载 Markdown 写法 直接考代码 反正博客园支持
    最全的ADB命令行大全(转)
    Python 帮你玩微信跳一跳 GitHub Python脚本
    React中setState的怪异行为 ——setState没有即时生效
    详解es6中Proxy代理对象的作用
    react-router和react-router-dom的区别
    webpack4 Cannot find module '@babel/core'
    vue-devtools的安装与使用
    Vuex的mapGetters方法使用报错
    vuex直接修改state 与 用commit提交mutation来修改state的差异
  • 原文地址:https://www.cnblogs.com/wfy680/p/11969460.html
Copyright © 2020-2023  润新知