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

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

 

posted @ 2022-03-11 16:46  你相信光吗12138  阅读(986)  评论(0编辑  收藏  举报