• 【EF学习笔记05】----------DBContext基础查询


    遍历所有实体

    //遍历所有学生 DBSet
    using (var db = new Entities())
    {
        foreach (var student in db.Student)
        {
            ObjectDumper.Write(student.StudentName);
        }
    };

    说明:打印所有学生的姓名

    根据条件查询

    using (var db = new Entities())
    {
        //查询所有出生日期在1991年1月1日之后的学生
        var day = Convert.ToDateTime("1991-1-1");
        var students = from v in db.Student where v.Birthday >= day select v;
        foreach (var student in students)
        {
            ObjectDumper.Write(student.StudentName+"-"+student.Birthday);
        }
    };

    执行结果:

    此处注意:使用linqlamba时,变量一定要提前转存,不能在linq内部使用C#函数。

    错误的写法:

    using (var db = new Entities())
    {
        var students = from v in db.Student where v.Birthday >= Convert.ToDateTime("1991-1-1") select v;
        foreach (var student in students)
        {
            ObjectDumper.Write(student.StudentName+"-"+student.Birthday);
        }
    };

    这样写直接就会报错:

    按照生日排序 升序排列(默认)

    using (var db = new Entities())
    {
        var students = from v in db.Student
                        orderby v.Birthday
                        select v;
        foreach (var student in students)
        {
            ObjectDumper.Write(student);
        }
    };

    降序:descending

    var students = from v in db.Student
                    orderby v.Birthday descending
                    select v;

    查询单个实体 Find方法

    //find查询单个实体
    using (var db = new Entities())
    {
        var student = db.Student.Find(1);
        ObjectDumper.Write(student);
    };

    说明:根据主键查询Student信息,如果找不到,则返回 NULL

    查询单个实体 Single方法

    //Single查询单个实体
    using (var db = new Entities())
    {
        var student = from v in db.Student
                        where v.StudentName=="张三"
                        select v;
        //single方法 查不到记录 或者 多条记录 都会报错
        ObjectDumper.Write(student.Single());
    };

    说明:调用single方法查不到记录 或者 多条记录 都会报错

    查询单个实体 SingleOrDefault方法

    //SingleOrDefault查询单个实体
    using (var db = new Entities())
    {
        var student = from v in db.Student
                        where v.StudentName == "李四"
                        select v;
        //SingleOrDefault方法 查不到记录返回null ,如果查询到多条记录会报错
        ObjectDumper.Write(student.SingleOrDefault());
    };

    说明:调用SingleOrDefault方法 查不到记录放回NULL 如果查询到多条记录报错

    完整案例:

    //遍历所有学生
                using (var db = new Entities())
                {
                    var students = from v in db.Student select v;
                    foreach (var student in students)
                    {
                        ObjectDumper.Write(student);
                    }
                };
    
                Console.WriteLine("==========按照生日排序===========");
                //按照生日排序 升序
                using (var db = new Entities())
                {
                    var students = from v in db.Student
                                    orderby v.Birthday descending
                                    select v;
                    foreach (var student in students)
                    {
                        ObjectDumper.Write(student);
                    }
                };
    
                Console.WriteLine("==========find查询单个实体===========");
                //find查询单个实体
                using (var db = new Entities())
                {
                    var student = db.Student.Find(1);
                    ObjectDumper.Write(student);
                };
    
                Console.WriteLine("==========single查询单个实体===========");
                //Single查询单个实体
                using (var db = new Entities())
                {
                    var student = from v in db.Student
                                    where v.StudentName=="张三"
                                    select v;
                    //single方法 查不到记录 或者 多条记录 都会报错
                    ObjectDumper.Write(student.Single());
                };
    
                Console.WriteLine("==========SingleOrDefault查询单个实体===========");
                //SingleOrDefault查询单个实体
                using (var db = new Entities())
                {
                    var student = from v in db.Student
                                    where v.StudentName == "李四"
                                    select v;
                    //SingleOrDefault方法 查不到记录返回null ,如果查询到多条记录会报错
                    ObjectDumper.Write(student.SingleOrDefault());
                };
  • 相关阅读:
    数字精确运算BigDecimal经常用法
    C3P0数据库连接池使用
    Theano学习笔记(四)——导数
    Leetcode--Merge Intervals
    1191 数轴染色
    P1021 邮票面值设计
    P1032 字串变换
    P1294 高手去散步
    P1832 A+B Problem(再升级)
    P1332 血色先锋队
  • 原文地址:https://www.cnblogs.com/gosky/p/5752001.html
Copyright © 2020-2023  润新知