zoukankan      html  css  js  c++  java
  • ASP.NET Core中使用Dapper实现数据交互

    一:简介

    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 {});
  • 相关阅读:
    Cisco ASR1002-X告警处理
    WLC5520无法通过无线客户端进行网管故障解决
    一键分享mob,方法二
    Java中堆内存和栈内存详解
    linux.linuxidc.com
    android中shape的使用(android:angle小解)
    Activity的Launch mode详解 :standard(默认), singleTop, singleTask和 singleInstance
    Android studio个人常用快捷键
    Android 公告新闻消息资讯之垂直滚动效果
    数据库设计相关
  • 原文地址:https://www.cnblogs.com/ZhengHengWU/p/12780198.html
Copyright © 2011-2022 走看看