【快速入门ORM框架之Dapper】大牛勿进系列
前言:dapper是什么?Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的。也就是说实体类都要自己写。它没有复杂的配置文件,一个单文件就可以了。
使用:在项目中nuget下载即可,dapper如何使用呢?它和EF不同,我们什么的配置都需要手写,连接配置,实体,上下文,这和ADO.NET有一点相似点。
实战:
配置Users表
create database TextInfo
USE TEXTINFO
create table Users
(
UserID INT IDENTITY(1,1) NOT NULL,
UserName varchar(50) Null,
Email [varchar](100) Null,
[Address] [varchar](100) Null
)
创建连接字符串
<connectionStrings>
<add name="CnnhoRechargePlatformConnectionString" connectionString="Data Source=DESKTOP-OEJGKOO;Initial Catalog=TextInfo;Integrated Security=True"/>
</connectionStrings>
IDbConnection说明
//读取config中的字符串
string connstr = ConfigurationManager.ConnectionStrings["CnnhoRechargePlatformConnectionString"].ToString();
//IDbConnection
IDbConnection connection = new SqlConnection(connstr);
我们都知道Sqlconnection继承了DbConnection,那我们再去DbConnection中一探究竟,发现DbConnection继承于IDbConnection,所以呢dapper就是通过这种方式进行了多数据的封装,dapper就是实现了这种接口支持多数据库的特性也就产生了!
Insert插入与InsertBulk
insert:
var result = connection.Execute("insert into Users values(@UserName,@Email,@Address)",new { UserName = "zara",Email="zaranet@163.com",Address="上海浦东"});
在这里支持匿名对象传入进行插入,非常的人性化哈!你可以发现dapper我们又开始写sql了,没错,这个博主上面没有提到,我们从微软的高度封装中逃了出来?可以这么比喻!对吧。。
insertBulk:
既然是Bulk操作,那一定是批量操作了,我们就可以把这个匿名对象编程匿名对象集合,这样就OK了
var userList = Enumerable.Range(0, 10).Select(i => new
{
Email = "zaranet@qq.com",
Address = "安徽",
UserName = "jack"
}); var result = connection.Execute("insert into Users values(@UserName,@Email,@Address)",userList);
这样我们就插入了10个,这种操作为了demo,其道理也是非常得离谱。
Query(select)
为了查询我们定义一个UserModel
public class User
{
public int UserID { get; set; }
public string UserName { get; set; }
public string Email { get; set; }
public string Address { get; set; }
}
var query = connection.Query<User>("select * from Users where UserName = @userName",new { UserName = "zara" });
Update(Edit)
这个操作和上面的几乎没什么差别就是改了下sql
var query = connection.Query<User>("update Users set UserName='zzh' where UserName = @UserName",new { UserName = "zara" });
Delete
这个操作和上面也差不多,非常简单的哈。
var query = connection.Query<User>("delete * from Users where UserName = @UserName",new { UserName = "zara" });
好了,希望你看完本片文章会让你对dapper有一个基本的认识,如果觉得写的可以话,点个赞吧!
【快速入门ORM框架之Dapper】大牛勿进系列的更多相关文章
- ORM框架之------Dapper,Net下无敌的ORM
一,介绍:Dapper是一款轻量级ORM工具.如果你在小的项目中,使用Entity Framework.NHibernate 来处理大数据访问及关系映射,未免有点杀鸡用牛刀.你又觉得ORM省时省力,这 ...
- 轻量级ORM框架初探-Dapper与PetaPoco的基本使用
一.EntityFramework EF是传统的ORM框架,也是一个比较重量级的ORM框架.这里仍然使用EF的原因在于为了突出轻量级ORM框架的性能,所谓有对比才有更优的选择. 1.1 准备一张数据库 ...
- 快速入门GreenDao框架并实现增删改查案例
大家的项目中不可避免的使用到SQLite,为此我们要花费心思编写一个增删改查框架.而一个好的ORM框架则能够给我们带来极大的方便,今天给大家讲解一个非常火热的ORM-GreenDao. 基本概念 Gr ...
- 轻量级ORM框架:Dapper中的一些复杂操作和inner join应该注意的坑
上一篇博文中我们快速的介绍了dapper的一些基本CURD操作,也是我们manipulate db不可或缺的最小单元,这一篇我们介绍下相对复杂 一点的操作,源码分析暂时就不在这里介绍了. 一:tabl ...
- 【零基础】快速入门爬虫框架HtmlUnit
迅速的HtmlUnit htmlunit是一款开源的web页面分析工具,理论上来说htmlunit应用于网页的自动化测试,但是相对来说更多人使用它来进行小型爬虫的快速开发.使用htmlunit进行爬虫 ...
- 轻量级高性能ORM框架:Dapper高级玩法
Dapper高级玩法1: 数据库中带下划线的表字段自动匹配无下划线的Model字段. Dapper.DefaultTypeMap.MatchNamesWithUnderscores = true; 备 ...
- 一文让你快速入门pytest框架
pytest是什么 官方文档描述: pytest is a framework that makes building simple and scalable tests easy. Tests ar ...
- 一篇文章快速入门React框架
视频教程 本文章在B站配有视频教程 课程目标 了解最常用的React概念和相关术语,例如JSX,组件,属性(Props),状态(state). 构建一个非常简单的React应用程序,以阐述上述概念. ...
- BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 将文本文件(csv)数据导进数据库
第二节 将文本文件数据导进数据库 该小节介绍如何用BIML生成ssis包,将货币文本导入到数据库currency的表中. SSIS组件: Connection Manager组建管理connectio ...
随机推荐
- pytest简介
pytest有哪些优点? 允许直接使用assert进行断言,而不需要使用self.assert*; 可以自动寻找单测文件.类和函数; Modular fixtures可以用于管理小型或参数化的测试信息 ...
- Jmeter中主要管理器功用
不管是在使用jmeter进行性能测试还是接口自动化测试时经常用到各种管理器进行对参数的处理,但是有时候分不清几种管理器的具体用法,所以做个笔记,列一下吧(所列内容基于版本为3.2) 主要内容包含以下: ...
- 分分钟解决MySQL查询速度慢与性能差
阅读本文大概需要 6 分钟. 一.什么影响了数据库查询速度 1.1 影响数据库查询速度的四个因素 1.2 风险分析 QPS: QueriesPerSecond意思是“每秒查询率”,是一台服务器每秒能够 ...
- CAGradientLayer简介 实现颜色渐变
CAGradientLayer使用: CAGradientLayer*gradient = [CAGradientLayerlayer]; gradient.frame = subLayer.fram ...
- 极速创建 IOS APP !涛舅舅苹果 IOS APP自助生成系统正式上线
经过大量的测试和开发工作,涛舅舅苹果 IOS APP自助生成系统正式上线! 本系统主要功能: 1.用最最简单的方式将H5网站打包生成一个苹果APP 2.只需要提供APP标题,H5网站首页url地址,一 ...
- System.InvalidOperationException: 支持“XXX”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269)。
System.InvalidOperationException: 支持“XXX”上下文的模型已在数据库创建后发生更改.请考虑使用 Code First 迁移更新数据库(http://go.micro ...
- redux 与 react-redux
Redux 一.Redux 三大原则: 1.一个应用永远只有一个数据源(整个应用状态都保存在一个对象中,Redux提供的工具函数combineReducers可以解决庞大的数据对象的问题) 2.状态是 ...
- ggplot2 aes函数map到data笔记
.all_aesthetics <- c("adj", "alpha", "angle", "bg", " ...
- python-邮件提醒功能
当scrapy爬取完成以后会发送详细信息到邮箱 1.首先编写邮件发送模块 #!usr/bin/env python # -*- coding:utf-8 -*- """ ...
- PHP 5.x和PHP 7 Closure不同行为问题
同样一段闭包代码,PHP 7 ok的,PHP 5.5.11(Windows 开发机器)上却报错,以为是PHP 5 bug,原来是用法不对,记录一下~ 原代码(自己写的框架的路由部分)最初是这样写的: ...