Bitter.Core系列四:Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore ORM 之 示例 查询
一: 单表模型驱动查询 如下示例代码演示:
// 根据ID 查询:
var studentquery = db.FindQuery<TStudentInfo>().QueryById(12);
#region 根据条件全量查询 学生姓名为 HJB 的同学
BList<TStudentInfo> students = db.FindQuery<TStudentInfo>().Where(p => p.FName == "HJB").Find(); // 根据条件批量查询 学生姓名为 HJB 的同学
TStudentInfo student_1 = db.FindQuery<TStudentInfo>().Where(p => p.FName == "HJB").Find().FirstOrDefault(); //此FirstOrDefault 重构过,为安全模式,数据库如果查不到数据,返回为空对象,避免返回 NULL.
if (student_1.FID > 0) //说明查询到数据
{ }
#endregion
#region 根据条件全量查询 ,查询到年龄大于等于15 岁的学生 students = db.FindQuery<TStudentInfo>().Where(p => p.FAage >=15).Find(); #endregion
#region 根据条件全量查询 ,查询到年龄大于等于15 岁 并且 年龄 小于 17岁 的学生 students = db.FindQuery<TStudentInfo>().Where(p => p.FAage >= 15&&p.FAage<17).Find();
//上面的查询也可以写如下方式
students = db.FindQuery<TStudentInfo>().Where(p => p.FAage >= 15).Where(p => p.FAage < 17).Find(); //多级 Where 查询 #endregion
#region 根据条件全量查询 ,查询到年龄<>15 students = db.FindQuery<TStudentInfo>().Where(p => p.FAage != 15).Find(); #endregion
#region 根据条件全量查询,查询到名字包含 "H" 的学生
students = db.FindQuery<TStudentInfo>().Where(p => p.FName.Contains("H")).Find(); //Contains 运行最终 Sql 为 : '%H%',暂时不支持 'H%','%H'
#endregion
#region 根据条件全量查询,多级 Where 查询
var studentquery = db.FindQuery<TStudentInfo>().Where(p => p.FName.Contains("H")); //Contains 运行最终 Sql 为 : '%H%',暂时不支持 'H%','%H'
studentquery.Where(p=>p.FAage>15);
students = studentquery.Find();
#endregion
二:高级查询直接SQL语句查询(非分页)
#region 高级查询直接SQL语句查询(非分页)
//查出分数>=90分的学生姓名以及具体学分 DataTable dt= db.FindQuery(
@"SELECT score.FScore,student.FName as studentNameFROM t_StudentScore score
LEFT JOIN t_student student ON score.FStudentId = student.FID
WHERE score.FScore>=@score
", new { score = 90 }).Find();
#endregion
三:单表模型驱动查询数量:
#region 根据条件全量查询 ,查询到年龄<>15 的总数量 var count = db.FindQuery<TStudentInfo>().Where(p => p.FAage != 15).FindCount(); #endregion
四: 单表模型驱动查询 排序:
1:正序
#region ASC 正序 students = db.FindQuery<TStudentInfo>().Where(p=>p.FAage>15).ThenAsc(p=>p.FAddTime).Find(); #endregion
2:正序
#region DESC 正序 students = db.FindQuery<TStudentInfo>().Where(p=>p.FAage>15).ThenDesc(p=>p.FAddTime).Find(); #endregion
3:多级排序(DESC)
#region DESC 多级正序 students = db.FindQuery<TStudentInfo>().Where(p=>p.FAage>15).ThenDesc(p=>p.FAage).ThenDesc(p=>p.FAddTime).Find(); #endregion
4:多级排序(ASC)
#region ASC 多级正序 students = db.FindQuery<TStudentInfo>().Where(p=>p.FAage>15).ThenAsc(p=>p.FAage).ThenAsc(p=>p.FAddTime).Find(); #endregion
5:多级正序倒序混排(ASC-DESC)
#region (ASC-DESC) 多级正序倒序混排 students = db.FindQuery<TStudentInfo>().Where(p => p.FAage > 15).ThenAsc(p => p.FAage).ThenDesc(p => p.FAddTime).Find(); #endregion
五:单表模型驱动查询--只查询符合条件的前 N 条数据:
#region (ASC-DESC) 多级正序倒序混排 students = db.FindQuery<TStudentInfo>().Where(p => p.FAage > 15).ThenAsc(p => p.FAage).ThenDesc(p => p.FAddTime).SetSize(10).Find(); //后面的 SetSize(N) 方法指定了需要查询的前 N 条数量 #endregion
六:单表模型驱动查询--只查询符合条件的前 N 条数据,并且只返回具体的列(FAage,FName):
#region 单表模型驱动查询--只查询符合条件的前 N 条数据,并且只返回具体的列(FAage,FName):
students = db.FindQuery<TStudentInfo>().Where(p => p.FAage > 15).ThenAsc(p => p.FAage).ThenDesc(p => p.FAddTime).SetSize(10).Select(c=>new object[] { c.FAage,c.FName}).Find(); //后面的 Select(columns) 方法指定了需要查询的列
students = db.FindQuery<TStudentInfo>().Where(p => p.FAage > 15).ThenAsc(p => p.FAage).ThenDesc(p => p.FAddTime).SetSize(10).Select(c => new List<object>{ c.FAage, c.FName }).Find(); //后面的 Select(columns) 方法指定了需要查询的列
#endregion
Bitter.Core系列四:Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore ORM 之 示例 查询的更多相关文章
- Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore ORM 开源了
开源的来了,懒人程序员的福音,.NET 生态闭环太缺开源精神了, 拥抱开源! 前言: 本人不是不喜欢现有ORM的轮子,而是发现现有的ORM 的都不太符合开发人员的一些习惯.现有的ORM 要么功能太冗余 ...
- Bitter.Core系列五:Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore ORM 之 示例 分页聚联查询
Bitter.Core 在聚联/分页聚联查询的时候,采用原生的MSSQL, MYSQL 语句查询,做过复杂高级项目的人知道,原生的聚合查询代码执行效率更高,更快,更容易书写,开发量最少. 借助原生的M ...
- Bitter.Core系列二:Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore ORM 之数据库连接
Bitter.Core NETCore 相当的简单易用,下面附上使用示例: 数据中连接:请在你的NETCORE 项目中 创建:Bitter.json 配置文件,然后追加如下配置内容: MSSQL 连接 ...
- Bitter.Core系列 十二 :Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore 之 支持的 where 条件表达式
Bitter.Core 内置了支持大部分的 linq 的条件表达式.基本上符合我们 where 条件所需.Bitter.Core 的支持 表达式内置 扩展 有: EndsWith 在Sql 解 ...
- Bitter.Core系列十一:Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore 之 字段变更收集器
有时候我们业务层需要记录 数据库表更改之前的值和更改之后的值的记录集合--此过程在 Bitter.Core 中有强有力的支持.Bitter.Core 字段收集器提供了方便简单易用的 收集对象在修改之前 ...
- Bitter.Core系列十:Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore 之 Log 日志
Bitter 框架的 Log 全部采用 NLog 日志组件.Bitter.Core 的 执行语句的日志记录 Nlog 日志级别为:info. 如果想要查看Bitter.Core 的执行SQL,先要去 ...
- Bitter.Core系列九:Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore 之 WITH 子句支持
有时我们在聚合查询中,经常会有复杂的聚联查询.有时表的聚联查询SQL 子句比较复杂,DBA 会经常告诉们,能否通过WITH 子句优化.WITH 子句,是对SQL 聚联查询的优化.Bitter.Core ...
- Bitter.Core系列八:Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore 之 事务
Bitter.Core 编写事务相当简单,Bitter.Core 尽可能的将代码编写量降为最低,例外一方方面保证客户主观能控制代码.Bitter.Core 事务提交,支持Builkcopy事务,原生事 ...
- Bitter.Core系列三:Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore ORM 之 示例模型创建
在具体数据库操作之前,我们先准备好四张表以及相对应数据库操作模型: 学生表,年级表,班级表,学分表.示例数据库表,如下代码(MSSQL 为例) --学生表 CREATE TABLE t_student ...
随机推荐
- Git常用命令大全,迅速提升你的Git水平
原博文 https://mp.weixin.qq.com/s/hYjGyIdLK3UCEVF0lRYRCg 示例 初始化本地git仓库(创建新仓库) git init ...
- MVC中使用T4模板
参考博文 http://www.cnblogs.com/heyuquan/archive/2012/07/26/2610959.html 图片释义 1.简单示例,对基本的模块标记 2.根据上图生成的类 ...
- 微服务痛点-基于Dubbo + Seata的分布式事务(TCC模式)
前言 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务.Seata 将为用户提供了 AT.TCC.SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案. ...
- easyui模板页面 不良调查
<%@page import="com.xy.cc.util.CUtil" %><%@page import="com.xy.cc.bean.UserP ...
- java采坑之路
判断相等 字符串判断相等 String str1 = null; String str2 = "java金融"; // str1.eq ...
- [LeetCode]501. Find Mode in Binary Search Tree二叉搜索树寻找众数
这次是二叉搜索树的遍历 感觉只要和二叉搜索树的题目,都要用到一个重要性质: 中序遍历二叉搜索树的结果是一个递增序列: 而且要注意,在递归遍历树的时候,有些参数如果是要随递归不断更新(也就是如果递归返回 ...
- STM32串口中断的一些资料
在研究STM32串口接收发送中断的时候找到不少不错的资料,现在备份在这里.以供自己查阅,以及方便其他人. TC ====TXE 顺便预告下最近会写个有关串口处理数据的帖子,从查询和中断方面以及数据处理 ...
- Spring Cloud是什么鬼?
研究了一段时间Spring Boot了准备向Spring Cloud进发,公司架构和项目也全面拥抱了Spring Cloud.在使用了一段时间后发现Spring Cloud从技术架构上降低了对大型系统 ...
- java中变量和标识符名命名规范
变量存放的是内存地址,当定义一个变量后,我们可以通过变量名找到该内存地址,可以修改该内存区间的值. 标识符的命名规范:首字母:字母,下划线,$符号:其余部分:数字,字母,下划线,$. 标识符应该避开j ...
- Beta冲刺——第五天
这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE1 这个作业要求在哪里 https://edu.cnblogs.com/campus/fz ...