Dapper学习 - Dapper.Rainbow(一) - Create】的更多相关文章

上一篇介绍了Rainbow的Create方法, 这里就来介绍一下Update方法吧, 毕竟新增和修改是双胞兄弟嘛. 一.Update 1. 测试代码: var conStr = ConfigurationManager.ConnectionStrings["Cons"].ToString(); using (var conn = new MySqlConnection(conStr)) { ); try { db.BeginTransaction(); ; i < ; i++)…
Dapper这个ORM有许多扩展, 我自己用过两种, 也算是比较主流的两种, Rainbow和Extension, 这里就先介绍下Rainbow吧, 毕竟这个先用, 当然, 由于我使用的是mysql数据库(项目中, java和.net结合的, 所以mssql用不了, 就用了mysql), 所以在使用Rainbow插件的时候, 需要修改一下, 这个不是针对mysql的. 由于时间关系, 先来介绍一下Create吧, 万丈高楼Create起. 项目中下载Dapper.Rainbow的方法: PM>i…
前面已经介绍了新增/修改/删除了, 接下来介绍一下Rainbow的Read方法. 一.Read -- Rainbow原生 1. 先看测试代码 var conStr = ConfigurationManager.ConnectionStrings["Cons"].ToString(); using (var conn = new MySqlConnection(conStr)) { ); //Rainbow提供方法 ); entity = db.Teacher.First(); var…
上一篇貌似少介绍了自定义函数和存储过程, 因为这两个也可以使用查询的方式来实现功能, 这一篇就补上 一.自定义函数的创建和调用 (mysql的) Delimiter $$ drop function if exists func_test; CREATE FUNCTION func_test (idIn INT) RETURNS int BEGIN ; ) into res from tch_teacher where id > idIn ; return res; END $$ Delimit…
之前介绍了Dapper的查询, 存储过程, 函数的调用, 接下来要说一下Dapper的增删改, 其实Dapper的增删改, 都是同一种模式的. 我就不分开介绍了, 直接在一个例子上展现好了. var sqlExec = @" /*新增*/ insert into tch_teacher(Sex, Name, IsDoublePosition, CreateDate) values(@Sex, @Name, @IsDoublePosition, @CreateDate); /*修改*/ updat…
上一篇, 提到Query<Test>查询的时候, 如果Test中包含自定义class, Dapper不会给自定义class完成映射, 而是直接给null, 其实是可以实现的, 答案就在下面的基本用法介绍中 提到用法, 首先是要实现CURD, 这里先介绍Read吧. 先上实体: public enum Gender { 男 = , 女 } public class Tch_Teacher { public int Id { get; set; } public Gender Sex { get;…
dapper 扩展插件: Rainbow dapper 是一个效率非常高的orm  框架 ,效率要远远大于 我们大微软的EF .    它只有一个类文件,非常之小. 1,首先下载dapper  这里下载   . 2,下载插件  Rainbow 在Package Manager Console  中输入 1 PM> Install-Package Dapper.Rainbow 准备工作 完成  下面是 demo . using System; using System.Collections.Ge…
目录 写在前面 前期准备 Dapper 单表批量添加 在Dapper 多表查询 在Dapper 调用存储过程 在Dapper 使用QueryMultiple进行多表查询 在Dapper 使用事务进行多表添加 在Dapper 使用事务进行多表编辑 在Dapper 使用事务进行多表删除 总结 写在前面 在上一小节中,我们学习.实践和总结记录了Dapper的基础用法.而这一小节,我们继续深入的学习一下Dapper这个小型 ORM框架的其他用法.在这个实列中,我们会用到两个有关联的表. 前期准备 首先,…
上一篇, 提到Query<Test>查询的时候, 如果Test中包含自定义class, Dapper不会给自定义class完成映射, 而是直接给null, 其实是可以实现的, 答案就在下面的基本用法介绍中 提到用法, 首先是要实现CURD, 这里先介绍Read吧. 先上实体: public enum Gender { 男 = 0, 女 } public class Tch_Teacher { public int Id { get; set; } public Gender Sex { get…
这里说的其他用法,是指 Async,Buffered,Transaction,Stored Procedure. 1. 首先 dapper支持异步 ExecuteAsync, QueryAsync, QueryFirstAsync, QueryFirstOrDefaultAsync, QuerySingleAsync, QuerySingleOrDefaultAsync, QueryMultipleAsync ExecuteAsync 用法示例: string sql = "INSERT INT…
ROS学习手记 - 2.1: Create and Build ROS Package 生成包(Python) 时隔1年,再回来总结这个问题,因为它是ros+python开发中,太常用的一个操作,需要熟练掌握,快速参考. Rer Links: Create and Build ROS Package 生成包(C++)…
dapper 是一个效率非常高的orm  框架 ,效率要远远大于 我们大微软的EF .    它只有一个类文件,非常之小.(在 EF 5.0 后 微软已经做了 改进) ps; 由于之前我也没测试过,只是看过官方之前的数据,还是实践出真知 . 在这里谢谢 深蓝医生 的指正.不过它还是一个非常优秀的微型orm框架. 1,首先下载dapper  这里下载   . 2,下载插件  Rainbow 在Package Manager Console  中输入 PM> Install-Package Dapp…
目录 写在前面 为什么选择Dapper 在项目中安装Dapper 在项目中使用Dapper 在项目中使用Dapper 进行单表增删改数据操作 总结 写在前面 Dapper 是一款轻量级ORM架构.为解决网站访问流量极高而产生的性能问题而构造,主要通过执行TSQL表达式而实现数据库的CQRS. 如果在项目中遇到性能访问问题,选择Dapper作为ORM框架可能是明智之举,当然也可以使用Entity Framework或NHibernate来处理大数据访问及关系映射. 为什么选择Dapper 1.轻量…
Dapper是一款开源的轻量级ORM工具,源代码下载地址为https://github.com/StackExchange/dapper-dot-net,其具有以下特点: 1.Dapper是一个轻型的ORM类. 2.Dapper的速度接近于IDataReader,取列表的数据超过了DataTable. 3.Dapper支持Mysql,SqlLite,Mssql2000,Mssql2005,Oracle等多种数据库 4.Dapper支持多表并联的对象.支持一对多 多对多的关系.无XML无属性. 5…
1.安装,直接用nuget搜索Dapper就行,不过只支持框架4.5.1 2.数据库测试表 CREATE TABLE [dbo].[Student]( [ID] [bigint] NULL, ) NULL, [Birthday] [date] NULL, [TeacherID] [bigint] NULL, [Level] [smallint] NULL, ) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[Teacher]( [ID] [bigint] N…
一.基础 1.Dapper代码就一个SqlMapper.cs文件, 前人测试Dapper速度较快 的Orm,读取速度接近IDataReader,超过DataTable. 2.a.下载地址 https://github.com/StackExchange/dapper-dot-net ,包含在线示例 (test project).b.net 下可以通过 Nuget下载. 3.实体类用NHibernateMappingGenerator生成.   二.示例代码 1.sql脚本 USE [Factor…
看了<Dapper从入门到精通>后的总结 (1)Dapper 是直接扩展 IDBConnection,而且是单独一个文件,可以直接嵌入到项目中使用. (2)通过手写sql语句,调用execute方法添加数据,返回的是影响的行数:通过实体,调用insert方法添加数据,返回的是主键值. (3)在IDBconnection中使用事务,主要注意在执行 Insert 方法时传入Transaction,用try...catch捕获异常,并在catch块调用Rollback(否则的话会出现部分提交的情况)…
Dapper是一个用于.NET的简单的对象映射,并且在速度上有着轻ORM之王的称号. Dapper扩展IDbConnection,提供有用的扩展方法来查询数据库. 那么Dapper是怎样工作的呢? 总共三步: 创建一个IDbConnection对象 写一个语句来执行CRUD操作 传递语句作为Execute方法的一个参数 因为这篇文章主要是为了学习其中一些方法的使用,所以,这里不再叙述安装等的一些使用,有需要的同学可以参考:https://dapper-tutorial.net/dapper 1.…
https://github.com/StackExchange/dapper-dot-net Dapper是对IDbConnection的扩展,需要使用Dapper提供的扩展只需要把SqlMapper这个文件放到自己的项目中即可.这样项目中的IDbConnection就可以直接使用Dapper中的扩展方法,这是怎么实现的呢?百度才知道这个是C#提供的扩展方法. 扩展方法如何使用呢?直接看代码. 对Object写一个自定义的ToString()方法,输出"自定义Object的ToString()…
Dapper中对事务的处理也非常简单,如下代码所示: private void DapperTransaction() { using (IDbConnection con = OpenConnection()) { IDbTransaction tran = con.BeginTransaction(); try { string query = "update T_Role set RoleName='开发主管' where RoleId=4";//更新一条记录 con.Execu…
在研究Dapper源码时发现Dapper NET45类库中的SqlMapper.cs文件前面有个蓝色的箭头图标,发现在Dapper NET45文件夹下根本不存在SqlMapper.cs文件,其文件属性中的完整路径指向了Dapper NET40文件夹中的SqlMapper.cs文件,如下图: 后发现其为一个链接引用,代码文件只有一份,但是可以被多个项目所包含.在项目里面添加一个已存在的文件时选择“添加为链接”即可,具体操作如下:…
听说有个轻量化的orm Dapper,我就去了解下.试着对Sql Server和Mysql进行增删改查,体验不错.它不如EF臃肿,也比一般的封装灵活,比如我们封装了一个映射类.利用反射,在ExecuteReader过程中根据需要映射的类,把数值映射上去,我们的列表与一个实体是分别封装到不同方法,而Dapper的Query方法直接实现了封装到一个实体与一个列表,比较灵活. Dapper支持多数据库,连接Sql Server只需要用SqlConnection类连接,连接Mysql需要引用Mysql.…
这篇文章主要讲 Dapper Plus,它使用用来操作大数量的一些操作的.比如插入1000条,或者10000条的数据时,再使用Dapper的Execute方法,就会比较慢了.这时候,可以使用Dapper Plus中的方法进行操作,提高速度. 主要包括下面: Bulk Insert Bulk Update Bulk Delete Bulk Merge 使用之前,需要在Nuget中,安装 Z.Dapper.Plus 注意:这个组件是收费的,每个月会有一个试用版本,没有免费版本 另外一种提高批量插入速…
一.无参存储过程 第一步:创建一个不带参数的存储过程,代码如下: CREATE PROCEDURE [dbo].[QueryRoleNoParms] AS BEGIN SELECT * FROM T_Role; END 第二步:执行存储过程,返回结果,代码如下: private List<Role> ExecuteStoredProcedureNoParms() { using (IDbConnection con = OpenConnection()) { List<Role>…
一.建表 在数据库中建立如下三张表: CREATE TABLE [dbo].[T_User] ( , ) PRIMARY KEY NOT NULL, ) NOT NULL, ) NULL, ) NULL, ) NULL, ) CREATE TABLE [dbo].[T_Role] ( , ) PRIMARY KEY NOT NULL, ) NOT NULL, ) CREATE TABLE [dbo].[T_UserRole] ( , ) PRIMARY KEY NOT NULL, [UserId…
0. FIrst , Single & Default 使用这个方法时要小心,First 和 Single 是不同的. 这里,对这个表做下说明: 如果使用 First , 当没有查到元素时,会报错:如果查到一个元素,会返回这个元素:如果查到多个元素,会返回第一个元素: 如果使用 Single , 没有查到元素会报错:查到一个元素,则返回这个元素:查到多个元素,则报错: 如果使用 FirstOrDefault , 没有查到元素会返回默认值;如果查到一个元素,则返回这个元素:如果查到多个元素,则返回…
今天在使用VS 2013安装Dapper的时候报错,具体报错信息如下: 经过网上查找错误原因,发现是安装的Dapper版本过高,.Net Framework版本不支持该版本的Dapper. 解决方案: 安装低版本的Dapper. 如果使用的是vs2013,建议在程序包管理器控制台里面进行安装.如果是vs2017,可以直接在管理Nuget程序包里面进行安装,vs2017安装的时候支持选择特定版本进行安装. 在程序包管理器控制台里面输入下面的命令进行安装: Install-package dappe…
源代码:https://github.com/1448376744/Dapper.CommonNUGET: Dapper.CommonQQ群:642555086 一.基本结构,此处可用委托,或动态代理完成 class Program { //类加载时配置一次 static Program() { //配置数据源为mysql SessionFactory.DataSource = ()=>new MySqlConnection("server=127.0.0.1;user id=root;p…
1. create/clone 1.1 create 针对已经存在的目录创建一个repository,使用以下命令: git init Initialized empty Git repository in _path_/.git/ 1.2 clone 从一个已知的repository克隆,使用以下命令: git clone <url or ssh> 1.3 how to commit 创建或者克隆一个repository之后,就可以创建新的文件,然后使用以下命令提交: git add <…
好久没用 JMeter 了,今天启动的时候,发现启动命令行窗口出现了警报,警告信息如下图所示:…