【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()); };
相关文章推荐
- java 从零开始,学习笔记之基础入门<SQL_Server_常用查询>(二十二)
- JDBC二查询(web基础学习笔记八)
- Mysql学习笔记二——基础查询where练习
- C#学习笔记(八)—–LINQ查询的基础知识(下)
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<Oracle_查询>(三十四)
- ASP.Net MVC开发基础学习笔记(7):数据查询页面
- 【JAVAWEB学习笔记】05_jQuery基础
- hibernate学习笔记05----离线查询
- 【EF学习笔记12】----------解释查询和本地查询 区分 Enumerable 和 Queryable
- Oracle 学习笔记 查询(重点,也是基础)
- JDBC基础学习笔记_05_jdbc的程序优化_DTC相关
- 黑马程序员_java基础学习笔记05_API常用类
- 【学习笔记】mysql查询执行的基础
- 嵌入式开发之C基础学习笔记05--模块化设计和函数的使用
- 【MongoDB学习笔记14】MongoDB的查询:find基础
- .Net学习笔记----2015-07-21(C#基础复习05,里氏转换)
- JDBC基础学习笔记_05_jdbc的程序优化_单立Connection并编写调用配置文件
- python基础学习笔记05-正则表达式与json
- C#学习笔记(八)—–LINQ查询的基础知识(中)
- LINQ之查询基础学习笔记(二)