zoukankan      html  css  js  c++  java
  • DBContext基础查询

    https://www.cnblogs.com/gosky/p/5752001.html

    遍历所有实体

    复制代码
    //遍历所有学生 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);
        }
    };
    复制代码

    执行结果:

    此处注意:使用linq和lamba时,变量一定要提前转存,不能在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());
                };
    复制代码
  • 相关阅读:
    嵌入式Linux操作系统学习规划
    底层机器指令学习
    汇编学习笔记
    无符号和有符号数操作优先级
    栈和堆的区别
    图Graph
    判断单链表里面有没有环
    centos配置中文显示和中文输入
    数组相关问题求解
    KMP算法
  • 原文地址:https://www.cnblogs.com/wfy680/p/11969392.html
Copyright © 2011-2022 走看看