ORM框架——Dapper
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的更多相关文章
- .NET轻量级ORM框架Dapper入门精通
一.课程介绍 本次分享课程包含两个部分<.NET轻量级ORM框架Dapper修炼手册>和<.NET轻量级ORM框架Dapper葵花宝典>,阿笨将带领大家一起领略轻量级ORM框架 ...
- c# 国内外ORM 框架 dapper efcore sqlsugar freesql hisql sqlserver数据常规插入测试性能对比
c# 国内外ORM 框架 dapper efcore sqlsugar freesql hisql sqlserver数据常规插入测试性能对比对比 在6.22 号发布了 c# sqlsugar,his ...
- 轻量型ORM框架Dapper的使用
在真实的项目开发中,可能有些人比较喜欢写SQL语句,但是对于EF这种ORM框架比较排斥,那么轻量型的Dapper就是一个不错的选择,即让你写sql语句了,有进行了关系对象映射.其实对于EF吧,我说下我 ...
- 轻量级ORM框架Dapper应用一:Dapper安装
一.Dapper简介 Dapper是一款轻量级ORM框架,为解决网站访问流量极高而产生的性能问题而构造,主要通过执行TSQL表达式而实现数据库的CQRS. 如果你在项目中遇到性能访问问题,选择Dapp ...
- ORM框架——Dapper的应用
常见的ORM框架有EF,Dapper,NHibernate 参考:http://shuai7boy.iteye.com/blog/2357339 http://www.cnblogs.com/Sint ...
- 基于轻量级ORM框架Dapper的扩展说明
这里简单的介绍一下本人基于Dapper作的一些简单的扩展,供大家参考. 为何要使用这款框架,相信大家看到下面排名就清楚了 其实在各大网站上,我们大概都会看到这样的一个对比效果图,在超过500次poco ...
- .NET 轻量级 ORM 框架 - Dapper 介绍
Dapper简单介绍: Dapper is a single file you can drop in to your project that will extend your IDbConnect ...
- 轻量级ORM框架 Dapper快速学习
好在有师兄师姐一起带着做,所以开始没那么困难,但是由于大学涉猎范围有限,往往有很尴尬的时候,不懂构造方法重载,去“请教”,本来以为师兄会帮忙写好,结果“我念,你来写”,被深深的激励了一把,后来就早出晚 ...
- 微型orm框架--dapper的简单使用
1.安装 首先使用nuget安装dapper,因为这里的示例是使用mysql,所以还要安装mysql的驱动.如下图: 2 数据库表 脚本 ; -- -------------------------- ...
- .net ORM框架(Dapper简单应用)
1.引入 Dapper.dll类库 2.创建书籍模型book using System; using System.Collections.Generic; using System.Linq; us ...
随机推荐
- [OpenCV实战]48 基于OpenCV实现图像质量评价
本文主要介绍基于OpenCV contrib中的quality模块实现图像质量评价.图像质量评估Image Quality Analysis简称IQA,主要通过数学度量方法来评价图像质量的好坏. 本文 ...
- Go+beego接入OSS上传
路由 f, h, err := c.GetFile("uploadFile") if err != nil { logx.Error("getfile err " ...
- SICTF_wp
misc 签到打卡完成 附加下载完成之后可以看到是qsnctf的公众号 使用010打开附件 可以发现key,去公众号回复key即可获得flag SICTF{fb23cefd-487f-42dd-a34 ...
- angular引入http服务创建服务注入
- DDL_操作数据库_修改&删除&使用
DDL_操作数据库_修改&删除&使用 3.U(Update) : 修改 修改数据库的字符集 alter database 数据库名称 character set 字符集名称; 4.D( ...
- 字符输入流读取字符数据-writer类
字符输入流读取字符数据 读取字符:read方法,每次可以读取一个字符的数据,提升为int类型,读取到文件末尾,返回-1,循环读取,代码使用演示∶ writer类 java.io.Filelwriter ...
- 集合框架-Collection集合
集合框架 JAVASE提供了满足各种需求的APl,在使用这些API前,先了解其继承与接口操作架构,才能了解何时采用哪个类,以及类之间如何彼此合作,从而达到灵活应用.集合按照其存储结构可以分为两大类,分 ...
- 《深入理解Java虚拟机》第三章读书笔记(二)——HotSpot垃圾回收算法实现(OopMap,安全点安全区域,卡表,写屏障,三色标记算法)
系列文章目录和关于我 前面<深入理解Java虚拟机>第三章读书笔记(一)--垃圾回收算法我们学习了垃圾回收算法理论知识,下面我们关注下HotSpot垃圾回收算法的实现,分为以下几部分 对象 ...
- iterator_traits技法
问题 在 C++ 泛型编程中,如何知道"迭代器所指对象的类型",以便声明临时变量呢?我们把迭代器所指对象的类型称为value type. template <class It ...
- KingbaseES数据库目录结构
KingbaseES数据库目录结构 [kingbase@postgres V8]$ tree -LP 2 data/ . ├── data │ ├── base # 存储用户创建的数据库文件及隶属于用 ...