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. 【转载】EXCEL VBA 同时选择多个工作表的方法

    如果要用VBA同时选择多个工作表,可以利用数组或设置"Select"方法的参数为"False"来扩展所选择的内容,如下面的一些代码:   1.用工作表名称:   ...

  2. [编程基础] C++多线程入门5-使用互斥锁解决资源竞争

    原始C++标准仅支持单线程编程.新的C++标准(称为C++11或C++0x)于2011年发布.在C++11中,引入了新的线程库.因此运行本文程序需要C++至少符合C++11标准. 文章目录 5 使用互 ...

  3. 云间玉兔,自出机抒,从零开始制作Web插件网页特效小兔子组件(小挂件widget),基于原生CSS/NPM

    著意登楼瞻玉兔,何人张幕遮银阙?又到了一年一度的网页小挂件环节,以往我们都是集成别人开源的组件,但所谓熟读唐诗三百首,不会做诗也会吟,熟读了别人的东西,做几首打油诗也是可以的,但若不能自出机抒,却也成 ...

  4. 02-RTL代码分析思路

    RTL代码分析思路(这里不进行具体代码的分析) verilog文件是以.v结尾的 1 RTL代码示例 //Date : 2023-01-09 //E-mail : xxxxxx@163.com //c ...

  5. git操作失误,提交代码因为网络问题没有成功,然后操作时候点错按钮导致代码全部没有了,也没用备份,如何解决

    最好的提交代码办法, 1.先创建一个空文件夹, 2.然后创建一个在线仓库 3. git remote add origin '仓库地址' 4.查看远程仓库 git remote remove orig ...

  6. springboot集成ElasticApm

    jvm参数方式: -javaagent:D:/codesoft/elastic-apm-agent-1.18.0.jar -Delastic.apm.service_name=my-applicati ...

  7. 力扣---213. 打家劫舍 II

    你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金.这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的.同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房 ...

  8. MongoDB数据库记录

    启动 MongoDB 服务 标准 URI 连接语法: mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:po ...

  9. DownKyi安装使用教程

    哔哩下载姬 哔哩下载姬是一个简单易用的哔哩哔哩视频下载工具,具有简洁的界面,流畅的操作逻辑. 支持批量下载哔哩哔哩视频 支持批量下载bilibili视频. 哔哩下载姬可以下载几乎所有的B站视频,并输出 ...

  10. WAF Bypass 介绍与实战

    前言 WAF是英文"Web Application Firewall"的缩写,中文意思是"Web应用防火墙",也称为"网站应用级入侵防御系统" ...