Net Core中使用Dapper封装数据操作库

在asp.net中常常使用Dapper进行数据库操作,而现在项目主要使用NetCore开发
以往项目中通常会有一些公共工具库或通用数据操作库等,这样方便各个项目拿去即用
那么现在基于netcore开发,需要将Dapper进行封装为类库,让开发人员使用更方便快捷。

创建一个netcore类库,通过NuGet引入Dapper,下面代码中还使用了Oracle数据库,所以得引入Oracle.ManagedDataAccess.Core

数据库操作参数

    public class ConnectionConfig
    {
   
        public string ConnectionString {
    get; set; }
        public DbStoreType DbType {
    get; set; }
    }
    
    public enum DbStoreType
    {
   
        MySql = 0,
        SqlServer = 1,
        Sqlite = 2,
        Oracle = 3
    }
    
    public class DapperFactoryOptions
    {
   
        public IList<Action<ConnectionConfig>> DapperActions {
    get; } = new List<Action<ConnectionConfig>>();
    }

定义一个操作接口

	public interface IDapperFactory
	{
   
    	DapperClient CreateClient(string name);
	}

实现接口

    public class DefaultDapperFactory : IDapperFactory
    {
   
        private readonly IServiceProvider _services;
        private readonly IOptionsMonitor<DapperFactoryOptions> _optionsMonitor;

        public DefaultDapperFactory(IServiceProvider services,IOptionsMonitor<DapperFactoryOptions> optionsMonitor)
        {
   
            _services = services ?? throw new ArgumentNullException(nameof(services));
            _optionsMonitor = optionsMonitor ?? throw new ArgumentNullException(nameof(optionsMonitor));
        }

        public DapperClient CreateClient(string name)
        {
   
            if (name == null)
                throw new ArgumentNullException(nameof(name));

            var client = new DapperClient(new ConnectionConfig {
    });

            var option = _optionsMonitor.Get(name).DapperActions.FirstOrDefault();
            if (option != null)
                option(client.CurrentConnectionConfig);
            else
                throw new ArgumentNullException(nameof(option));

            return client;
        }

    }

数据库操作类,增删改查方法封装的太多篇幅较长,这里只贴出了常用的一部分方法

	public class DapperClient
    {
   
        public ConnectionConfig CurrentConnectionConfig {
    get; set; }
        
        public DapperClient(IOptionsMonitor<ConnectionConfig> config)
        {
   
    
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值