将DbConnectionFactory从.net迁移到.NET核心

时间:2018-01-29 12:38:06

标签: c# .net .net-core

我试图将一个小的.net框架项目迁移到.net核心项目。但是我花了几个小时搜索如何将以下代码用于.net core 2.0。但我不走运,因为似乎System.Data.Common功能因某种原因被削减了。所以,我在这里遇到了两个问题:

  1. 如何从连接字符串中获取提供程序名称?我们是否有针对.net core 2.0
  2. 的ConnectionStringSettings
  3. 我们如何只在提供者名称字符串上获得工厂基础? 任何其他想法如何执行松散耦合的数据库连接工厂

    public class ConnectionFactory
    {
        protected readonly DbProviderFactory Factory;
    
        protected readonly string ConnectionString;
    
        public ConnectionFactory(string connectionStringName)
        {
            var settings = ConfigurationManager.ConnectionStrings[connectionStringName];
            this.Factory = DbProviderFactories.GetFactory(settings.ProviderName);
            this.ConnectionString = settings.ConnectionString;
        }
    
        public DbConnection Connection
        {
            get
            {
                var con = Factory.CreateConnection();
                con.ConnectionString = this.ConnectionString;
                return con;
            }
        }
    }
    

1 个答案:

答案 0 :(得分:5)

DbProviderFactories将在.net core 2.1(2018年第二季度)中提供。