您的位置:首页 > 其它

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

2016-08-09 10:14 519 查看

遍历所有实体

//遍历所有学生 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()); };
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: