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调用测试一下

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

最新文章

  1. React学习之一:React初探
  2. 菜鸟学习Struts——配置Struts环境
  3. UOJ #142. 【UER #5】万圣节的南瓜灯 并查集
  4. mybatis update语句参数正常, 数据没有更新
  5. OC - 17.AFNetworking原理及常用操作
  6. Objective-C学习篇05—Foundation框架简介
  7. js返回当前时间的毫秒数
  8. 【ASP.NET Web API教程】5.5 ASP.NET Web API中的HTTP Cookie
  9. HTTPS背后的加密算法(转)
  10. python链接MySQLdb报错:2003
  11. mysql基础练习题
  12. js中按钮去触发定时器,那么多次点击这个定时器会越来越快,解决方法
  13. python基础数据类型练习2
  14. swiper 父级元素display:none 之bug
  15. Linux下main函数启动过程【程序员自我修养笔记】【自用】
  16. Delphi控件cxGrid 如何动态创建列?
  17. ubuntu查看本地ip
  18. BZOJ2217 : [Poi2011]Lollipop
  19. 菜鸟学Java(十一)——GET与POST
  20. [Offer收割]编程练习赛15 B.分数调查[加权并查集]

热门文章

  1. day09-功能实现08
  2. CH32V307以太网(芯片内部10M)
  3. TiDB 底层存储结构 LSM 树原理介绍
  4. ZXing CaptureActivity黑屏问题
  5. Apache IoTDB C# SDK Apache-IoTDB-Client-CSharp
  6. day16-声明式事务-02
  7. 创建型模式 - 简单工厂模式StaticFactoryMethod
  8. Unity之GPS定位(高德解析)
  9. undefined会变为null吗?
  10. 【一句话】Redis的3中缓存策略