1.什么是ORM

ORM(Object Relational Mapping)对象关系映射,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换

2.C#中ORM框架

EF(entity framework),dapper,sqlsugar,Massive等

EF:ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案。该框架曾经为.NET Framework的一部分,但version 6之后从.NET Framework分离出来。

dapper:一款轻量级ORM工具

sqlsugar:SqlSugar是国人开发者开发的一款基于.NET的ORM框架,是可以运行在.NET 4.+ & .NET CORE的高性能、轻量级 ORM框架,众多.NET框架中最容易使用的数据库访问技术。

massive:小巧,动态的微ORM框架。

3.Dapper

Dapper是一款轻量级ORM工具。如果在小的项目中,使用Entity Framework、NHibernate 来处理大数据访问及关系映射,未免有点杀鸡用牛刀。这个时候Dapper就是我们的不二选择了

Dapper的话,性能优越,相比于EF之类的ORM框架,操作上更为简单,并且也支持多种数据库

3.1使用

通过nuget进行安装

管理NuGet程序包,找到Dapper直接安装就好,在解决方案管理器中查看引用包,如果有Dapper,说明安装成功。 

还有一种方法可以直接去官网下载源代码,有兴趣可以去查一下资料学习一下,

然后安装完成之后就可以使用Dapper进行CURD操作

新建了一个学生类

下面就直接贴代码了

 public class StudentDAL
{
//数据库连接字符串
string conn = "Server=.;DataBase=DapperDemo;Trusted_Connection=True"; /// <summary>
/// 无条件查询
/// </summary>
/// <returns></returns>
public List<StudentModel> GetStudent()
{
using (IDbConnection db=new SqlConnection(conn))
{
string sql = $"select * from Student";
return db.Query<StudentModel>(sql).ToList();
}
}
/// <summary>
/// 查询指定数据
/// </summary>
/// <param name="SName">学生姓名</param>
/// <returns></returns>
public List<StudentModel> QueryStudent(string SName)
{
using (IDbConnection db = new SqlConnection(conn))
{
//用@作为参数
string sql = $"select * from Student where SName=@SName";
return db.Query<StudentModel>(sql, new { @SName= SName }).ToList();
//这里的匿名对象参数与sql语句中的@参数相对应
}
}
/// <summary>
/// 添加
/// </summary>
/// <returns></returns>
public int AddStudent(StudentModel model)
{
using (IDbConnection db = new SqlConnection(conn))
{
string sql = "insert into Student (SName,Sex,SAge) values" +
"(@SName,@Sex,@SAge)";
return db.Execute(sql, new { @SName= model.SName,@Sex= model.Sex,@SAge= model.SAge});
}
}
/// <summary>
/// 删除单条件
/// </summary>
/// <param name="SId">学生id</param>
/// <returns></returns>
public int DeleteStudent(int SId)
{
using (IDbConnection db=new SqlConnection(conn))
{
string sql = "delete from Student where SId=@SId";
return db.Execute(sql, new { SId = SId });
}
}
/// <summary>
/// 修改
/// </summary>
/// <returns></returns>
public int UpdateStudent(StudentModel model)
{
using (IDbConnection db = new SqlConnection(conn))
{
string sql = "update Student set SName=@SName,Sex=@Sex,SAge=@SAge where SId=@SId";
return db.Execute(sql, new { @SName = model.SName, @Sex = model.Sex, @SAge = model.SAge, @SId = model.SId });
}
}
}

连接数据库,紧接着进行curd操作,这就是dapper,总体来说也没什么难点,使用起来特别简单,接下来就在Controller调用测试一下

大功告成,写下博客记录一下

ORM框架——Dapper的更多相关文章

  1. .NET轻量级ORM框架Dapper入门精通

    一.课程介绍 本次分享课程包含两个部分<.NET轻量级ORM框架Dapper修炼手册>和<.NET轻量级ORM框架Dapper葵花宝典>,阿笨将带领大家一起领略轻量级ORM框架 ...

  2. c# 国内外ORM 框架 dapper efcore sqlsugar freesql hisql sqlserver数据常规插入测试性能对比

    c# 国内外ORM 框架 dapper efcore sqlsugar freesql hisql sqlserver数据常规插入测试性能对比对比 在6.22 号发布了 c# sqlsugar,his ...

  3. 轻量型ORM框架Dapper的使用

    在真实的项目开发中,可能有些人比较喜欢写SQL语句,但是对于EF这种ORM框架比较排斥,那么轻量型的Dapper就是一个不错的选择,即让你写sql语句了,有进行了关系对象映射.其实对于EF吧,我说下我 ...

  4. 轻量级ORM框架Dapper应用一:Dapper安装

    一.Dapper简介 Dapper是一款轻量级ORM框架,为解决网站访问流量极高而产生的性能问题而构造,主要通过执行TSQL表达式而实现数据库的CQRS. 如果你在项目中遇到性能访问问题,选择Dapp ...

  5. ORM框架——Dapper的应用

    常见的ORM框架有EF,Dapper,NHibernate 参考:http://shuai7boy.iteye.com/blog/2357339 http://www.cnblogs.com/Sint ...

  6. 基于轻量级ORM框架Dapper的扩展说明

    这里简单的介绍一下本人基于Dapper作的一些简单的扩展,供大家参考. 为何要使用这款框架,相信大家看到下面排名就清楚了 其实在各大网站上,我们大概都会看到这样的一个对比效果图,在超过500次poco ...

  7. .NET 轻量级 ORM 框架 - Dapper 介绍

    Dapper简单介绍: Dapper is a single file you can drop in to your project that will extend your IDbConnect ...

  8. 轻量级ORM框架 Dapper快速学习

    好在有师兄师姐一起带着做,所以开始没那么困难,但是由于大学涉猎范围有限,往往有很尴尬的时候,不懂构造方法重载,去“请教”,本来以为师兄会帮忙写好,结果“我念,你来写”,被深深的激励了一把,后来就早出晚 ...

  9. 微型orm框架--dapper的简单使用

    1.安装 首先使用nuget安装dapper,因为这里的示例是使用mysql,所以还要安装mysql的驱动.如下图: 2 数据库表 脚本 ; -- -------------------------- ...

  10. .net ORM框架(Dapper简单应用)

    1.引入 Dapper.dll类库 2.创建书籍模型book using System; using System.Collections.Generic; using System.Linq; us ...

随机推荐

  1. 前端工程化筑基-Node/npm/babel/polyfill/webpack

    00.前端搬砖框架 开发 ⇨ 构建 ⇨ 部署上线 ⇨ 摸鱼: 01.Node.js/npm Node.JS 是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境,不是JS库(是C ...

  2. 在linux中安装mysql5.7

    安装前准备: 确保你的CentOS6.10使用的镜像url是可被访问的!!(可参考文章:https://blog.csdn.net/qq_39946015/article/details/111086 ...

  3. mysql 1366 - Incorrect string value

    mysql 插入中文时报错  mysql 1366 - Incorrect string value... 这是由于 数据库 / 表 / 表字段 编码格式未设置好造成的 解决办法: 1.查看编码是否符 ...

  4. 迁移学习(MixMatch)《MixMatch: A Holistic Approach to Semi-Supervised Learning》

    论文信息 论文标题:MixMatch: A Holistic Approach to Semi-Supervised Learning论文作者:David Berthelot, Nicholas Ca ...

  5. 避免用Apache Beanutils进行属性的copy。why?让我们一起一探究竟

    在实际的项目开发中,对象间赋值普遍存在,随着双十一.秒杀等电商过程愈加复杂,数据量也在不断攀升,效率问题,浮出水面. 问:如果是你来写对象间赋值的代码,你会怎么做? 答:想都不用想,直接代码走起来,g ...

  6. windows系统批量转换CRLF和LF格式代码,解决eslint报错Delete `␍`解决'unix2dos' is not recognized as an internal or external command

    每天都要开心(▽)哇: 最近写代码,工程配置为lf格式,但是拉取代码后,代码都变成了CRLF,于是满屏幕报错 在做跨平台开发移植的时候,最常见的问题就是不同操作系统的换行不同(例如,Windows 上 ...

  7. RISC-V 平台移植 RTOS

        ARM 上移植实时操作系统大家可能比较熟悉,且例程较多,对于 RISC-V 内核的 MCU,可能相对比较陌生.下面结合 WCH 的 CH32V103 和 CH32V307 两款芯片来详细说下针 ...

  8. 分布式事务 | 使用DTM 的Saga 模式

    DTM 简介 前面章节提及的MassTransit.dotnetcore/CAP都提供了分布式事务的处理能力,但也仅局限于Saga和本地消息表模式的实现.那有没有一个独立的分布式事务解决方案,涵盖多种 ...

  9. Git分支变基-知识点整理记录

    Git中分支的整合分为合并和变基两种. 变基是把一系列的提交按照原有次序依次应用到另一个分支上.而合并是把最终的结果合在一起. 一.变基原理 首先找到基底分支和当前分支的最近共同祖先,然后比对当前分支 ...

  10. spring中Utils工具类注入问题

    使用工具类的时候,我们想在static修饰的方法中,通过注入来调用其他方法,这里就存在问题. 第一:普通工具类是不在spring的管理下,spring不会依赖注入 第二:即便使用@Autowired完 ...