以MySQL数据库为例

一. 安装

NuGet搜索Dapper.Lite并安装最新版本。

NuGet搜索MySqlConnector并安装最新版本。



也可以使用MySql.Data库,但MySqlConnector库性能更好。

二. 实现数据库Provider

using Dapper.Lite;
using MySql.Data.MySqlClient;
using System.Data.Common; namespace DAL
{
public class MySQLProvider : MySQLProviderBase, IDbProvider
{
#region 创建 DbConnection
public override DbConnection CreateConnection(string connectionString)
{
return new MySqlConnection(connectionString);
}
#endregion #region 生成 DbParameter
public override DbParameter GetDbParameter(string name, object value)
{
return new MySqlParameter(name, value);
}
#endregion }
}

三. 创建实例

IDapperLite db = new DapperLite(
"Data Source=localhost;Port=3306;User ID=root;Password=123456;Initial Catalog=litesql_test;Charset=utf8mb4;SslMode=none;Allow User Variables=True;",
new MySQLProvider());

四. 查询示例

SQL查询

IDbSession session = db.GetSession();
List<SysUser> list = session.Sql("select * from sys_user where id <= @Id and remark like @Remark", 20, "%测试%").ToList<SysUser>();
//或
list = session.Sql("select * from sys_user where id <= @Id and remark like @Remark", new { Id = 20, Remark = "%测试%" }).ToList<SysUser>();

Lambda查询

IDbSession session = db.GetSession();
List<SysUser> list = session.Queryable<SysUser>().Where(t => t.Id <= 20 && t.Remark.Contains("测试")).ToList();

SQL拼接查询条件支持Lambda表达式

IDbSession session = db.GetSession();
List<BsOrder> list = session
.Sql<BsOrder>(@"
select t.*, u.user_name as OrderUserName
from bs_order t
left join sys_user u on u.id = t.order_userid")
.Where(t => t.Amount > 100 && t.OrderTime > new DateTime(2022, 1, 1))
.Where<SysUser>(u => u.RealName == "张三")
.ToList();

更多示例

README.md (gitee)

wiki (gitee)

README.md (github)

wiki (github)

NuGet地址

Dapper.Lite

如有问题加QQ群:497956447。

源码地址

https://gitee.com/s0611163/Dapper.Lite

https://github.com/0611163/Dapper.Lite

配套实体类生成器地址

https://gitee.com/s0611163/ModelGenerator

https://github.com/0611163/ModelGenerator

ClickHouse测试

https://gitee.com/s0611163/ClickHouseTest

Dapper.Lite 使用教程的更多相关文章

  1. Dapper简易教程(翻译自Github上StackExchange/Dapper)

    本文源自:https://github.com/cnxy/Dapper-zh-cn 本博客作者与Github上作者(cnxy)实为同一个作者.由于笔者翻译水平有限,文本中错误难免,欢迎指正! 本文翻译 ...

  2. C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志

    C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...

  3. Asp.net Core 3.1 引用ORM工具包 yrjw.ORM.Chimp(EF + dapper + Autofac)使用教程

    yrjw.ORM.Chimp 介绍 It is not the encapsulation of ORM,a based on EF + dapper + Autofac, is repository ...

  4. Dapper简明教程

    Dapper是一款轻量级的ORM框架,有关Dapper优缺点的文章网上一大堆,这里小编就不再赘述啦.下面直接进入正题: 使用前准备 添加对Dapper的引用 在使用Dapper之前,我们要首先添加对D ...

  5. Dapper入门教程(一)——Dapper介绍

    Dapper是什么? Dpper是一款.Net平台简单(Simple)的对象映射库,并且Dapper拥有着"微型ORM之王"的称号.就速度而言与手写ADO.NET SqlDateR ...

  6. [译]Dapper教程

    脑子里突然浮现出一个想法:尝试翻译一些技术文档.说干就干,先来翻译个最近经常查阅的Dapper教程,有兴趣的园友可以一起参与进来 dapper-tutorial-cn. 什么是Dapper Dappe ...

  7. Dapper入门教程(二)——执行非查询语句

    描述 你可以从任意实现IDbConnection的类对象中调用Dapper的扩展方法"Execute".它能够执行一条命令(Command)一次或者多次,并返回受影响的行数.这个方 ...

  8. asp.net core 系列之webapi集成Dapper的简单操作教程

    Dapper也是是一种ORM框架 这里记录下,使用ASP.NET 集成 Dapper 的过程,方便自己查看 至于Dapper的特性以及操作可以参考Dapper官方文档 1.创建数据库相关 在Sql S ...

  9. 免费申请使用IBM Cloud Lite(轻量套餐) 详细教程指南

    注册轻量帐户可在 IBM CLOUD控制台中使用所选的显示有轻量标记的免费轻量套餐来构建应用程序和探索服务.轻量帐户不会到期,也无需信用卡. 本文详细的介绍了一下,免费云服务的申请以及使用!这次使用I ...

  10. Dapper实用教程

    Dapper是什么? Dpper是一款.Net平台简单(Simple)的对象映射库,并且Dapper拥有着“微型ORM之王”的称号.就速度而言与手写ADO.NET SqlDateReader相同.OR ...

随机推荐

  1. 【python】大作业进度一 | 解析题目

    1.爬取生成txt文件(整本小说) 2.图形化界面的实现

  2. 2019牛客国庆集训派对day3 G排列(状压dp)

    题目传送门 一道很好的状压DP,状态是当前的占位情况,排序操作和第21次CSP认证的第四题作用类似. #include<cstdio> #include<vector> #in ...

  3. uni-app全局样式和局部样式

    前言 好,经过上个章节的介绍完毕之后,了解了一下 UniApp 的一个全局 页面配置文件,也就是我们的一个 pages.json 文件. 那么了解完了这个文件之后,这片文章,再了解一下 UniApp ...

  4. .NET使用分布式网络爬虫框架DotnetSpider快速开发爬虫功能

    前言 前段时间有同学在微信群里提问,要使用.NET开发一个简单的爬虫功能但是没有做过无从下手.今天给大家推荐一个轻量.灵活.高性能.跨平台的分布式网络爬虫框架(可以帮助 .NET 工程师快速的完成爬虫 ...

  5. 我理解的null和“ “,希望大家给予更正。

    我认为null是零的意思,就是没有任何的东西,比如说文件的读取中,没有任何的东西就是null,刚刚用new String创建的String里面有一个引用,所以它不为null,如果用String h=& ...

  6. 网安靶场环境_DVWA-读取文件报错File not found! Cookie中有两个security键

    DVWA-文件包含漏洞-读取文件报错-ERROR: File not found! Cookie中有两个security键 1 问题复现 (1)登录DVMA后,设置DVWA Security为Low. ...

  7. [CF1168C] And Reachability

    And Reachability 题面翻译 题目描述 Toad Pimple 有一个整数数组 \(a_1,\dots,a_n\). 当 \(x < y\) 且存在 \(x = p_1 < ...

  8. SpringBoot CORS 跨域请求解决方案之配置过滤器

    方式一:@CrossOrigin 方式二: @Configuration public class CorsConfig implements WebMvcConfigurer { @Override ...

  9. 16级C程序设计竞赛C题

    问题 C: 回文 时间限制: 1 Sec  内存限制: 128 MB提交: 74  解决: 36[提交][状态][讨论版] 题目描述 给定一个字符串,你可以对字符串做任意改动,你可以在任意地方增加一个 ...

  10. 在蓝图中使用flask-restful

    flask-restful中的Api如果传递整个app对象,那么就是整个flask应用都被包装成restful. 但是,你可以只针对某个蓝图(django中的子应用)来进行包装,这样就只有某个蓝图才会 ...