ShadowSql之借Dapper打通ORM最后一公里
ShadowSql专职拼写sql,要想做为ORM就需要借高人之手
我们要借的就是Dapper,Dapper以高性能著称,ShadowSql搭配Dapper就是强强联手
为此本项目内置了一个子项目Dapper.Shadow就是Dapper扩展
以下是Dapper.Shadow的示例
一、配置Dapper执行器
ISqlEngine engine = new SqliteEngine();
IDbConnection connection = new SqliteConnection("Data Source=file::memory:;Cache=Shared");
IExecutor executor = new DapperExecutor(engine, connection);
其中engine数据库(及方言)的配置对象,现在支持5种,分别是MsSql、MySql、Oracle、Postgres和Sqlite
二、读取整张表
var students = Executor.From("Students")
.ToDapperSelect()
.Get<Student>();
三、查询数据
1、SqlQuery查询数据
var students = Executor.From("Students")
.ToSqlQuery()
.Where("Age=10")
.ToDapperSelect()
.Get<Student>();
var students = Executor.From("Students")
.ToSqlQuery()
.ColumnValue("Age", 10)
.ToDapperSelect()
.Get<Student>();
var table = new StudentTable("Students");
var students = table.ToSqlQuery()
.Where(table.Age.EqualValue(10))
.ToSelect()
.Get<Student>(Executor);
var students = new StudentTable("Students")
.ToSqlQuery()
.Where(table => table.Age.EqualValue(10))
.ToSelect()
.Get<Student>(Executor);
var students = new Table("Students")
.DefineColums("Age")
.ToSqlQuery()
.Where(student => student.Column("Age").EqualValue(10))
.ToDapperSelect(Executor)
.Get<Student>();
主要分以下三种
1.1 把执行器当数据库对象,这样查询就自带执行器,可以直接执行
1.2 执行时把执行器当参数传入
1.3 先查询,调用ToDapperSelect创建可执行对象
2、Query查询数据
var table = new StudentTable("Students");
var students = table.ToQuery()
.And(table.Age.EqualValue(10))
.ToSelect()
.Get<Student>(Executor);
var students = Executor.From("Students")
.ToQuery()
.And(table => table.Field("Age").EqualValue(10))
.ToDapperSelect()
.Get<Student>();
var table = new StudentTable("Students");
var students = table.ToQuery()
.And(table.Age.EqualValue(10))
.ToDapperSelect(Executor)
.Get<Student>();
查询方式多样,限与篇幅没法一一
以上示例邮件可以清晰显示ShadowSql和Dapper可以无缝对接
实现了一个一个精简的高性能ORM
ShadowSql之借Dapper打通ORM最后一公里的更多相关文章
- Dapper小型ORM的使用(随便吐槽下公司)
近来公司又有新项目要做,之前做项目用过蛮多ORM,包括ef,NetTiers,ServiceStack.OrmLite等ROM,每种ORM都有一定的坑(或者说是使用者的问题吧~~).用来用去都觉的有一 ...
- Dapper.NET - ORM(ibatis.Net)
Dapper.NET使用 1.为什么选择Dapper 2.以Dapper(4.0)为例. 2.1 在数据库中建立几张表. 2.2实体类. 3.使用方法 3.1 一对一映射 3.2 一对多映射 3.3 ...
- ASP .Net Core 使用 Dapper 轻型ORM框架
一:优势 1,Dapper是一个轻型的ORM类.代码就一个SqlMapper.cs文件,编译后就40K的一个很小的Dll. 2,Dapper很快.Dapper的速度接近与IDataReader,取列表 ...
- 企业应用架构研究系列十三:整合EFCore&Dapper 通用ORM框架EFDapper
EntityFrameworkCore是微软官网提供的ORM框架,是轻量化.可扩展.开源和跨平台的数据访问技术框架,但是在.Net 开发圈的评论却褒贬不一.很多人认为EFCore 执行的效能比较差,很 ...
- Dapper.net ORM
参考链接:https://github.com/StackExchange/dapper-dot-net Dapper - a simple object mapper for .Net Dapper ...
- Use Dapper ORM With ASP.NET Core
Dapper.NET is not just another ORM tool, it's considered as the king of ORM. Because it's fast, easy ...
- 使用轻量级ORM Dapper进行增删改查
项目背景 前一段时间,开始做一个项目,在考虑数据访问层是考虑技术选型,考虑过原始的ADO.NET.微软的EF.NH等.再跟经理讨论后,经理强调不要用Ef,NH做ORM,后期的sql优化不好做,公司 ...
- 轻量级ORM框架Dapper应用一:Dapper安装
一.Dapper简介 Dapper是一款轻量级ORM框架,为解决网站访问流量极高而产生的性能问题而构造,主要通过执行TSQL表达式而实现数据库的CQRS. 如果你在项目中遇到性能访问问题,选择Dapp ...
- ORM之Dapper运用
一.前言 上一篇[分层架构设计]我们已经有了架构的轮廓,现在我们就在这个轮廓里面造轮子.项目要想开始,肯定先得确定ORM框架,目前市面上的ORM框架有很多,对于.net人员来说很容易就想到以ADO.N ...
- Asp.net Core 系列之--2.ORM初探:Dapper实现MySql数据库各类操作
ChuanGoing 2019-09-10 距离上一篇近一个月时间,断断续续才把本篇码完,后面将加快进度,争取年度内把本系列基本介绍完成,同时督促本人持续学习. 本篇学习曲线: 1.初识Dapper ...
随机推荐
- 项目PMP之十项目沟通管理
项目PMP之十--项目沟通管理 一.定义:通过正式或非正式途径信息有效交换获取想法.指示或情绪:向大家说明项目进度现状(即工作绩效报告) 成功的沟通:适合的沟通策略:信息传递需要恰当:理解正确:筛 ...
- w3cschool-R语言 教程
https://www.w3cschool.cn/r/ R语言教程 R语言是用于统计分析,图形表示和报告的编程语言和软件环境. R语言由Ross Ihaka和Robert Gentleman在新西兰奥 ...
- VulNyx - System
扫描发现 2121是ftp端口 8000 http的一个端口 6379redis端口 爆破redis的密码 爆破出来时bonjour 猜测ftp的密码和redis的密码是一样的 尝试用密码去爆出ftp ...
- 探索魔乐社区:GLM-4V-9B模型微调之旅
人工智能的浪潮中,魔乐社区以其丰富的资源和开放的环境,逐渐成为了开发者们的新宠.今天,让我们一起走进魔乐社区,通过GLM-4V-9B模型微调的最佳实践,体验这个平台的独特魅力. 多模态的新星:GLM- ...
- .NET周刊【2月第1期 2025-02-02】
国内文章 dotnet 9 已知问题 默认开启 CET 导致进程崩溃 https://www.cnblogs.com/lindexi/p/18700406 本文记录 dotnet 9 的一个已知且当前 ...
- Iceberg参数调整
1.读取参数介绍 属性 默认值 描述 read.split.target-size 134217728 (128 MB) 组合数据输入分割时的目标大小 read.split.metadata- ...
- vue-element-admin改为从后台获取菜单
一.修改文件\src\router\index.js 文件的asyncRoutes清理为 export const asyncRoutes = [ { path: '*', redirect: '/4 ...
- Luogu P11628 WC2025 猫粮 题解 [ 绿 ] [ 贪心 ] [ adhoc ] [ 鸽巢原理 ]
猫粮:WC 诈骗题.我竟然能切 WC 的 T3 也是逆天了. 话说切了猫粮能变成猫娘吗 qwq. 思路 首先题目里有下面几点关键的性质: 所有猫粮质量总和等于所有猫要吃的质量总和. 优质的有 \(n\ ...
- 同事PPT又拿奖了?偷偷用这AI工具,3步做出老板狂赞的年度报告
大家好,我是六哥,今天为大家分享一款PPT辅助神器,年底汇报必备神器!就是Napkin AI ! 这是一款超级酷的工具,它能把你写的文字一秒钟转化为各种炫酷的视觉效果,比如图表.流程图.信息图啥的.如 ...
- ATT&CK实战系列(一)
环境下载 下载靶场环境,并导入虚拟机分别是win2003.win7.winserver2008 配置网络 虚拟机--编辑--虚拟机网络编辑器--添加网络VMnet2--仅主机模式分配的地址是192.1 ...