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

遍历所有实体

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

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

根据条件查询

DBContext基础查询
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);
    }
};
DBContext基础查询

执行结果:

DBContext基础查询

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

错误的写法:

DBContext基础查询
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);
    }
};
DBContext基础查询

这样写直接就会报错:

DBContext基础查询

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

DBContext基础查询
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);
    }
};
DBContext基础查询

降序:descending

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

查询单个实体 Find方法

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

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

查询单个实体 Single方法

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

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

查询单个实体 SingleOrDefault方法

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

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

 

完整案例:

DBContext基础查询
//遍历所有学生
            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());
            };
DBContext基础查询

遍历所有实体

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

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

根据条件查询

DBContext基础查询
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);
    }
};
DBContext基础查询

执行结果:

DBContext基础查询

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

错误的写法:

DBContext基础查询
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);
    }
};
DBContext基础查询

这样写直接就会报错:

DBContext基础查询

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

DBContext基础查询
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);
    }
};
DBContext基础查询

降序:descending

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

查询单个实体 Find方法

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

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

查询单个实体 Single方法

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

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

查询单个实体 SingleOrDefault方法

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

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

 

完整案例:

DBContext基础查询
//遍历所有学生
            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());
            };
DBContext基础查询

相关文章:

  • 2020-01-19
  • 2018-10-18
  • 2022-01-04
  • 2021-07-06
  • 2021-11-09
  • 2021-09-30
  • 2021-12-31
  • 2021-12-02
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2019-11-12
  • 2021-07-14
  • 2021-05-08
相关资源
相似解决方案