首页 > 技术文章 > ASP.NET Core中使用Dapper实现数据交互

ZhengHengWU 2020-04-26 16:00 原文

一:简介

Dapper是一款轻量级ORM工具。ORM框架的核心思想是对象关系映射,ORM是将表与表之间的操作,映射成对象和对象之间的操作,就是通过操作实体类来达到操作表的目的。从数据库提取的数据会自动按你设置的映射要求封装成特定的对象。之后你就可以通过对对象进行操作来修改数据库中的数据。这时候你面对的不是信息的碎片,而是一个形象鲜明的对象。

二:安装Dapper

1、右键项目管理NuGet管理包,进行安装Dapper

 

 

 

2、创建CreateConnection连接

SimpleCRUD.SetDialect(SimpleCRUD.Dialect.MySQL);
//通过工厂模式创建Connection连接
IDbConnection MyConnection = DbProviderFactories.GetFactory("MySql.Data.MySqlClient").CreateConnection(); if (MyConnection == null) throw new Exception("数据库链接获取失败!");
public static DbProviderFactory GetFactory(string providerInvariantName)
        {
            if (string.IsNullOrEmpty(providerInvariantName))
                throw new Exception("数据库链接字符串配置不正确!");

            if (providerInvariantName.ToLower().Contains("mysql"))
            {
                return new MySqlClientFactory();
            }

            throw new Exception("暂不支持您使用的数据库类型!");

        }

3、通过appsettings.json获取数据库连接字符串

//创建MySql数据库连接对象
var connectionString = ConfigPath.MySqlConnectionStr;
MyConnection.ConnectionString = connectionString;

4、开启事务

/// <summary>
        /// 开启事务
        /// </summary>
        public void BeginTransaction()
        {
                if (_closeFlag = (ConnectionState.Closed == MyConnection.State))
                    MyConnection.Open();

                MyTransaction = MyConnection.BeginTransaction();
        }

5、提交事务

/// <summary>
        /// 提交事务
        /// </summary>
        public void CommitTransaction()
        {
            MyTransaction.Commit();
            MyTransaction.Dispose();
            MyTransaction = null;

            if (_closeFlag)
                MyConnection.Close();
        }

6、回滚事务

/// <summary>
        /// 回滚事务
        /// </summary>
        public void RollbackTransaction(Exception ex = null)
        {
            MyTransaction.Rollback();
            MyTransaction.Dispose();
            MyTransaction = null;

            if (_closeFlag)
                MyConnection.Close();

            if (ex != null)
                throw ex;
        }

7、根据sql查询数据

MyConnection.Query<T>(sql, paramValues);

8、通过sql获取一条实体

MyConnection.QueryFirstOrDefault<SingleType>(sql, paramValues);

9、插入数据

MyConnection.Insert<TKey,T>(t);

10、删除数据

MyConnection.Delete<T>(id)

11、通过sql执行操作

MyConnection.Execute(sql,new {});

 

推荐阅读