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. 【世界杯黑技术专题】「原理探索专题」一文解读一下“卡塔尔世界杯”的先进技术之半自动越位技术SAOT+比赛用球Al Rihla

    盘点卡塔尔世界杯的先进黑科技 归纳总结一下目前世界杯的先进的黑科技有哪些?大致可以划分为以下几点. 半自动化越位技术 比赛用球Al Rihla 球场智能空调 可持续利用的体育场 便利的数字设施和App ...

  2. JQuery拖拽移动

    /** * zzh_2022032101_拖拽移动 * @param obj 目标对象 / #id / .class * @param moveOut 是否可以移出边界 */ function dra ...

  3. Java程序员用代码,计算最大公约数和最小公倍数

    作者:小傅哥 博客:https://bugstack.cn 源码:https://github.com/fuzhengwei/java-algorithms 沉淀.分享.成长,让自己和他人都能有所收获 ...

  4. Strapi入门记--01创建项目,账户,测试表,测试接口

    Strapi 是什么 中文文档地址 Strapi 是一个开源的无头 CMS,开发人员可以自由选择他们喜欢的工具和框架,并允许编辑使用他们的应用程序的管理面板来管理和分发他们的内容.基于一个插件系统,S ...

  5. 解决angular11+zorro使用table组件排序失效以及分页组件失效问题,附完整DEMO代码

    关于这个排序失效问题的核心点,跟这个有关系:[nzFrontPagination]="false" 关于分页组件失效的问题,是你获取数据以后,需要给页码,页数,总条数都要重新赋值, ...

  6. 新下载了一个框架,然后npm install时候报错npm ERR! Maximum call stack size exceeded

    今天遇到这个npm ERR! Maximum call stack size exceeded报错 解决方案如下: 1.更新npm版本 //查看版本 npm -v //更新 npm install - ...

  7. Git + Jenkins 自动化 NGINX 发布简易实现

    概述 之前基于 GitLab + Jenkins 实现了简单的 NGINX 的自动化发布. 具体包含如下的组件: GitLab 包括 GItLab 的 WebHook: Jenkins 及其插件: G ...

  8. 带你读AI论文丨S&P21 Survivalism: Living-Off-The-Land 经典离地攻击

    摘要:这篇文章属于系统分析类的文章,通过详细的实验分析了离地攻击(Living-Off-The-Land)的威胁性和流行度,包括APT攻击中的利用及示例代码论证. 本文分享自华为云社区<[论文阅 ...

  9. Grafana 系列文章(十三):如何用 Loki 收集查看 Kubernetes Events

    前情提要 IoT 边缘集群基于 Kubernetes Events 的告警通知实现 IoT 边缘集群基于 Kubernetes Events 的告警通知实现(二):进一步配置 概述 在分析 K8S 集 ...

  10. mybatis学习日记3

    1.mybatis的延迟加载 问题:在一对多中,当我们有一个用户,他有100个账户 在查询用户的时候,要不要把关联的账户查出来? 在查询账户的时候,要不要把关联的用户查出来? 解决:在查询用户的时候, ...