C#中如何使用Dapper

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: C#中如何使用Dapper

Dapper是.NET下轻量级ORM,和Entity Framework或Nhibnate不同,它是半自动化的。Dapper它只有一个代码文件,并且完全开源。我们可以将它放在项目的任何位置来实现数据到对象的ORM操作,它具备体积小且速度快的特点。使用ORM的好处是增、删、改会很快,不用自己写sql语句,并且程序中大量的从数据库中读数据然后创建model,并为model字段赋值,这些ORM都可以替我们完成。ORM给开发带来便利的同时,性能也是一个不得不考虑的问题。一般ORM的性能和原生sql相比性能都差了不少,但Dapper性能还不错,与DbHelperSQL相比性能高出很多。

执行

执行一次或多次命令并返回受影响行数。使用在存储过程插入、更新和删除的情况下,代码如下:

string sql = "INSERT INTO user(name) Values (@Name);";
using (var connection = new SqlConnection(SqlHelper.GetConnectionStringSqlServer()))
{
    //返回受影响的行
      var rowCount = connection.Execute(sql, new {Name= "张三"});
      Console.WriteLine(rowCount);
}

查询

执行查询并映射结果,代码如下:

string sql = "SELECT TOP 10 * FROM user";
using (var connection = new SqlConnection(SqlHelper.GetConnectionStringSqlServer()))
{
   //简单的查询并映射为User类型
      var users= connection.Query<User>(sql).ToList();
}

带参数查询

在Dapper查询中使用参数,代码如下:

using (var connection = new SqlConnection(SqlHelper.GetConnectionStringSqlServer()))
{
    //带参查询
      var customer = connection.Query<Customer>("Select * FROM user WHERE name = @Name", new {Name= "张三"})).ToList();
}

查询结果映射

将查询结果映射到不同的类型。Dapper可以实现结果匿名映射、强类型映射、多重映射 多结果映射和多类型映射,代码如下:

string sql = "SELECT TOP 10 * FROM user";
using (var connection = new SqlConnection(SqlHelper.GetConnectionStringSqlServer()))
{
   //映射为User
      var users= connection.Query<User>(sql).ToList();
      Console.WriteLine(users.Count);}
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
6天前
|
存储 监控 Go
Golang框架实战-KisFlow流式计算框架(1)-概述
KisFlow是针对缺乏数仓平台但又有实时计算需求的企业的解决方案,它提供分布式批量消费、有状态流式计算、数据流监控和分布式任务调度等功能。通过KisFunction实现业务逻辑复用,减轻对业务数据库的压力。系统包括流式计算层和任务调度层,支持多种数据源和中间件集成。KisConfig用于配置管理,KisFunction是基本计算单元。设计目标是使业务工程师能轻松进行流式计算。项目源码可在GitHub查看:https://github.com/aceld/kis-flow。
36 0
Golang框架实战-KisFlow流式计算框架(1)-概述
|
5月前
|
SQL C# 数据库
推荐一个Dapper扩展CRUD基本操作的开源库
推荐一个Dapper扩展CRUD基本操作的开源库
34 0
|
存储 算法 JavaScript
Go 语言快速入门指南:第六篇 与数据为舞之映射
在我们学习汉字的时候,发现有一个生僻字的话,我们会使用字典。字典这种数据组织方式就是为了方便查询的操作的,那么 Go 语言中有没有这样的方式来存储数据呢?当然是有,maps。
|
存储 Java Go
Go 语言快速入门指南:第八篇 接口
前面的文章中,了解到 Go 语言不是一种传统意义上的面向对象语言,因此 Go 没有类和继承的概念。 但是面向对象的功能很强大而且很实用,前一篇文章中已经了解到可以通过嵌入类型来实现 Has-a 的关系。 这一篇文章将通过学习接口来看到 Go 通过结构体、方法和接口实现面向对象的功能。
|
SQL 关系型数据库 MySQL
开源Dapper的Lambda扩展-Sikiro.Dapper.Extension V2.0
开源Dapper的Lambda扩展-Sikiro.Dapper.Extension V2.0
200 0
开源Dapper的Lambda扩展-Sikiro.Dapper.Extension V2.0
|
测试技术 C# 开发工具
.NET Core实战项目之CMS 第五章 入门篇-Dapper的快速入门看这篇就够了
 写在前面 上篇文章我们讲了如在在实际项目开发中使用Git来进行代码的版本控制,当然介绍的都是比较常用的功能。今天我再带着大家一起熟悉下一个ORM框架Dapper,实例代码的演示编写完成后我会通过Git命令上传到GitHub上,正好大家可以再次熟悉下Git命令的使用,来巩固上篇文章的知识。
1907 0
|
SQL 安全 数据库
【快速入门ORM框架之Dapper】大牛勿进系列
原文:【快速入门ORM框架之Dapper】大牛勿进系列 前言:dapper是什么?Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的。
1439 0
|
SQL 关系型数据库 测试技术
.NET轻量级ORM框架Dapper入门精通
一、课程介绍 本次分享课程包含两个部分《.NET轻量级ORM框架Dapper修炼手册》和《.NET轻量级ORM框架Dapper葵花宝典》,阿笨将带领大家一起领略轻量级ORM框架Dapper的魅力。
2990 0
|
SQL MySQL 关系型数据库
.NET轻量级ORM组件Dapper葵花宝典
一、摘要 为什么取名叫《葵花宝典》? 从行走江湖的世界角度来讲您可以理解为一本"武功秘籍",站在我们IT编程的世界角度应该叫"开发宝典"。 如果您在工作中主要接触的是操作MySQL数据库,但您又想学习和了解.NET轻量级ORM框架Dapper,那么就请跟着阿笨一起学习本次的分享课《.NET轻量级ORM框架Dapper葵花宝典》。
2181 0
|
SQL XML 存储
.NET轻量级ORM组件Dapper修炼手册
一、摘要 1.1、为什么叫本次的分享课叫《修炼手册》? 阿笨希望本次的分享课中涉及覆盖的一些小技巧、小技能给您带来一些帮助。希望您在日后工作中把它作为一本实际技能手册进行储备,以备不时之需,一旦当手头遇到与Dapper修炼手册中相似用法的地方和场景,可以直接拿来进行翻阅并灵活的运用到项目中。
1660 0