DBContext基础查询
遍历所有实体

//遍历所有学生 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());
};

DBContext基础查询的更多相关文章
- 【EF学习笔记05】----------DBContext基础查询
遍历所有实体 //遍历所有学生 DBSet using (var db = new Entities()) { foreach (var student in db.Student) { Object ...
- HQL基础查询语句
HQL基础查询语句 1.使用hql语句检索出Student表中的所有列 //核心代码 @Test public void oneTest() { Query query=session.createQ ...
- Mego开发文档 - 基础查询
基础查询 Mego 使用语言集成查询(LINQ)从数据库查询数据.LINQ允许您使用C#(或其他.NET语言)根据派生的上下文和实体类编写强类型查询.将LINQ查询的表示传递给数据库提供者,翻译为数据 ...
- T-SQL基础查询——单表查询
1,查询的顺序 SELECT empid, YEAR(orderdate) AS orderyear, COUNT(*) AS numorders FROM Sales.Orders GROUP BY ...
- Mongodb 基础 查询表达式
数据库操作 查看:show dbs; 创建:use dbname; // db.createCollection('collection_name'); 隐式创建,需要创建的数据库中有表才表示创 ...
- mysql基础查询语法
一.mysql查询的五种子句 where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.group by子句通常和count( ...
- SQL基础--查询之三--嵌套查询
SQL基础--查询之三--嵌套查询
- SQL基础--查询之五--查询语句一般格式
SQL基础--查询之五--查询语句一般格式
- SQL基础--查询之四--集合查询
SQL基础--查询之四--集合查询
随机推荐
- 11maven的聚合
我们都知道项目之间的依赖首先要把被依赖的项目先安装install到maven的本地仓库中,然后在本项目中配置被依赖的仓库坐标,才能进行依赖通信. 例如: A项目 > B项目 A项目依赖B项目中 ...
- .net core3.0 webapi搭建(一)
一.创建WebApi项目: 生成项目之后,控制器默认生成了一个WeatherForecastController 我们可以直接启动项目,F5调试,默认进入WeatherForecastControll ...
- Java不同单词个数统计
描述 编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数.例如:对于句子“one little two little three little boys”,总共有5个不同的单词:one, ...
- 构造并判断二叉搜索树-js
class Node { constructor (val) { this.val = val this.left = this.right = undefined } } class Tree { ...
- C++中c_str()的用法
这个函数经常用到,总是记不住,记下来,方便翻阅 c_str()函数返回一个指向正规C字符串的指针,内容与string串相同. C++中c_str()主要用法就是为了与C语言兼容,在C语言中没有stri ...
- 项目部署 ubuntu Django uwsgi配置
1.进入项目文件夹 mkdir uwsgi_file vim uwsgi.ini 写入保存 [uwsgi] chdir = /home/mysite/my_project # 项目目录 module ...
- list类型的应用场景 —— Redis实战经验
list类型是简单的字符串列表,按照插入顺序排序.每个列表最多可以存储 232 - 1 个元素(40多亿) ,list类型主要有以下应用场景.. 1. 消息队列 list类型的lpop和rpush(或 ...
- R语言函数化学习笔记4
条件语句和循环语句 当你说话时候用到了如果,此时条件出现了 举个条件函数的例子 sign_t<-function(x){ if(x>0){ return(1) }else if(x< ...
- Luogu2422 | 良好的感觉 (单调栈)
题目描述 kkk做了一个人体感觉分析器.每一天,人都有一个感受值Ai,Ai越大,表示人感觉越舒适.在一段时间[i, j]内,人的舒适程度定义为[i, j]中最不舒服的那一天的感受值 * [i, j]中 ...
- 专项:Vuejs面试题集合
参考网络资源:https://segmentfault.com/a/1190000012315822 1.active-class是哪个组件的属性? 答:active-class是vue-router ...