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());
};


浙公网安备 33010602011771号