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

DBContext基础查询的更多相关文章

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

    遍历所有实体 //遍历所有学生 DBSet using (var db = new Entities()) { foreach (var student in db.Student) { Object ...

  2. HQL基础查询语句

    HQL基础查询语句 1.使用hql语句检索出Student表中的所有列 //核心代码 @Test public void oneTest() { Query query=session.createQ ...

  3. Mego开发文档 - 基础查询

    基础查询 Mego 使用语言集成查询(LINQ)从数据库查询数据.LINQ允许您使用C#(或其他.NET语言)根据派生的上下文和实体类编写强类型查询.将LINQ查询的表示传递给数据库提供者,翻译为数据 ...

  4. T-SQL基础查询——单表查询

    1,查询的顺序 SELECT empid, YEAR(orderdate) AS orderyear, COUNT(*) AS numorders FROM Sales.Orders GROUP BY ...

  5. Mongodb 基础 查询表达式

    数据库操作 查看:show dbs; 创建:use dbname; // db.createCollection('collection_name');    隐式创建,需要创建的数据库中有表才表示创 ...

  6. mysql基础查询语法

    一.mysql查询的五种子句 where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.group by子句通常和count( ...

  7. SQL基础--查询之三--嵌套查询

    SQL基础--查询之三--嵌套查询

  8. SQL基础--查询之五--查询语句一般格式

    SQL基础--查询之五--查询语句一般格式

  9. SQL基础--查询之四--集合查询

    SQL基础--查询之四--集合查询

随机推荐

  1. SpringBoot学习- 11、更好用的代码生成工具EasyCode

    SpringBoot学习足迹 之前的mybatis代码生成工具无法自定义模板,找了一个可以自定义模板的插件,初学者最好用比较齐全的代码生成工具,不然拼错一个代码会掉坑里半天爬不出来. 有的同学会说干么 ...

  2. Tensor--tensorflow的数据类型

    在tensorflow2.0版本之前,1.x版本的tensorflow的基本数据类型有计算图(Computation Graph)和张量(Tensor)两种,但tensorflow2.0之后的版本取消 ...

  3. 使用touch操作图片

    功能: 1.图片放大缩小 2.图片移动 3.图片上做点标记 PS 1.后端程序员不容易,且行且珍惜 2.代码不想封装,累 js代码 /**************************calc pi ...

  4. Mac下各种编程环境的配置问题(python java)

    首先,去官网下载安装包.直接运行安装.安装完成后,启动器中会多两个应用程序IDLE和Python Launcher. 如果,你习惯在IDLE,直接运行即可. 但你在Terminal中运行python3 ...

  5. C# LINQ学习笔记三:LINQ to OBJECT之操作字符串

    本笔记摘抄自:https://www.cnblogs.com/liqingwen/p/5814204.html,记录一下学习过程以备后续查用. 一.统计单词在字符串中出现的次数 请注意,若要执行计数, ...

  6. 0219 springmvc-拦截器和响应增强

    拦截器 拦截器分同步拦截器和异步拦截器: HandlerInterceptor 方法和执行时机 可以看DispathcerServlet的原来确定它的三个方法的执行时机: AsynHandlerInt ...

  7. react-native构建基本页面4---渲染电影列表

    电影列表 import React, { Component } from 'react' import { View, Image, Text, ActivityIndicator, FlatLis ...

  8. Mysql快速入门(三)

    MySQL性能优化之查看执行计划explain 介绍: (1).MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发 ...

  9. Hdu2099 整除的尾数

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2099 Problem Description 一个整数,只知道前几位,不知道末二位,被另一个整数除尽了 ...

  10. 安装多个jdk环境7、8、11等,并且切换默认使用版本

    背景 在公司开发时,不同项目往往使用不同的jdk.目前使用最多的应该是JDK1.8,但是有些老项目使用1.7甚至1.6等 或者你想学习JDK最新版本,一些新特新如JDK11,现在最新都有JDK13 1 ...