【快速入门ORM框架之Dapper】大牛勿进系列

简介: 原文:【快速入门ORM框架之Dapper】大牛勿进系列前言:dapper是什么?Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的。
原文: 【快速入门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有一个基本的认识,如果觉得写的可以话,点个赞吧!

 

相关文章
快速入门Web开发(上) 黑马程序员JavaWeb开发教程(2)
快速入门Web开发(上) 黑马程序员JavaWeb开发教程(2)
74 7
|
9月前
|
快速入门Web开发(上) 黑马程序员JavaWeb开发教程(1)
快速入门Web开发(上) 黑马程序员JavaWeb开发教程(1)
103 5
(3) MasaFramework 入门第三篇,使用MasaFramework
(3) MasaFramework 入门第三篇,使用MasaFramework
125 0
(3) MasaFramework 入门第三篇,使用MasaFramework
开源 Golang 微服务入门三:ORM 框架 GORM| 青训营笔记
GORM 是面向 Golang 语言的一种 ORM(持久层)框架,支持多种数据库的接入,此框架弱化了开发者对于 SQL 语言的掌握程度,使用提供的 API 进行底层数据库的访问。使用提供的 API 进
190 0
开源 Golang 微服务入门三:ORM 框架 GORM| 青训营笔记
卷起来了!手把手带你写一个中高级程序员必会的分布式RPC框架
什么是RPC? 远程服务调用 官方:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想 通俗一点:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序中的对象一样。 市面上常见的rpc框架:dobbo,springCloud,gRPC...
深入浅出RPC框架|青训营笔记
由于课程涉及到的RPC知识需要自己对其有较为全面的理解后才能比较好的get到课程中提及的各种框架设计的点,因此我建议阅读Kitex框架的源码,再结合课程目录去体会Kitex设计的初衷。
205 0
深入浅出RPC框架|青训营笔记