Ejemplo n.º 1
0
        public static DbProviderFactory GetDbProviderFactory(DataAccessProviderTypes type)
        {
            if (type == DataAccessProviderTypes.SqlServer)
            {
                return(SqlClientFactory.Instance); // this library has a ref to SqlClient so this works
            }

            if (type == DataAccessProviderTypes.SqlServerCore)
            {
                return(GetDbProviderFactory("Microsoft.Data.SqlClient.SqlClientFactory", "Microsoft.Data.SqlClient"));
            }

            if (type == DataAccessProviderTypes.SqLite)
            {
                return(GetDbProviderFactory("Microsoft.Data.Sqlite.SqliteFactory", "Microsoft.Data.Sqlite"));
            }

            if (type == DataAccessProviderTypes.MySql)
            {
                return(GetDbProviderFactory("MySql.Data.MySqlClient.MySqlClientFactory", "MySql.Data"));
            }

            if (type == DataAccessProviderTypes.PostgreSql)
            {
                return(GetDbProviderFactory("Npgsql.NpgsqlFactory", "Npgsql"));
            }

            if (type == DataAccessProviderTypes.Oracle)
            {
                return(GetDbProviderFactory("Oracle.DataAccess.Client.OracleClientFactory", "Oracle.DataAccess"));
            }

            throw new NotSupportedException($"Unsupported Provider Factory specified: {type}");
        }
Ejemplo n.º 2
0
        public static DbProviderFactory GetDbProviderFactory(DataAccessProviderTypes type)
        {
            //if (type == DataAccessProviderTypes.SqlServer)
            //    return SqlClientFactory.Instance; // this library has a ref to SqlClient so this works

            if (type == DataAccessProviderTypes.SqlServer)
            {
                return(GetDbProviderFactory("System.Data.SqlClient.SqlClientFactory", "System.Data"));
            }
            if (type == DataAccessProviderTypes.SqLite)
            {
                return(GetDbProviderFactory("Microsoft.Data.Sqlite.SqliteFactory", "Microsoft.Data.Sqlite"));
            }
            if (type == DataAccessProviderTypes.MySql)
            {
                return(GetDbProviderFactory("MySql.Data.MySqlClient.MySqlClientFactory", "MySql.Data"));
            }
            if (type == DataAccessProviderTypes.MySqlConnector)
            {
                return(GetDbProviderFactory("MySqlConnector.MySqlConnectorFactory", "MySqlConnector"));
            }
            if (type == DataAccessProviderTypes.PostgreSql)
            {
                return(GetDbProviderFactory("Npgsql.NpgsqlFactory", "Npgsql"));
            }

            //#if NETFULL
            //    if (type == DataAccessProviderTypes.OleDb)
            //        return System.Data.OleDb.OleDbFactory.Instance;
            //    if (type == DataAccessProviderTypes.SqlServerCompact)
            //        return DbProviderFactories.GetFactory("System.Data.SqlServerCe.4.0");
            //#endif

            throw new NotSupportedException("Unsupported Provider Factory: " + type.ToString());
        }
Ejemplo n.º 3
0
        internal static string GetProviderInvariantName(DataAccessProviderTypes type)
        {
            if (type == DataAccessProviderTypes.SqlServer)
            {
                return(ProviderInvariantSql);
            }

            if (type == DataAccessProviderTypes.SqlServerCore)
            {
                return(ProviderInvariantSqlCore);
            }

            if (type == DataAccessProviderTypes.SqLite)
            {
                return(ProviderInvariantSqlite);
            }

            if (type == DataAccessProviderTypes.MySql)
            {
                return(ProviderInvariantMysql);
            }

            if (type == DataAccessProviderTypes.PostgreSql)
            {
                return(ProviderInvariantPostgres);
            }

            if (type == DataAccessProviderTypes.Oracle)
            {
                return(ProviderInvariantOracle);
            }

            throw new NotSupportedException($"Unsupported Provider Factory specified: {type}");
        }
Ejemplo n.º 4
0
        /// <summary>
        /// This method loads various providers dynamically similar to the
        /// way that DbProviderFactories.GetFactory() works except that
        /// this API is not available on .NET Standard 2.0
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public static DbProviderFactory GetDbProviderFactory(DataAccessProviderTypes type)
        {
            if (type == DataAccessProviderTypes.SqlServer)
            {
                return(SqlClientFactory.Instance); // this library has a ref to SqlClient so this works
            }
            if (type == DataAccessProviderTypes.SqLite)
            {
#if NETFULL
                return(GetDbProviderFactory("System.Data.SQLite.SQLiteFactory", "System.Data.SQLite"));
#else
                return(GetDbProviderFactory("Microsoft.Data.Sqlite.SqliteFactory", "Microsoft.Data.Sqlite"));
#endif
            }
            if (type == DataAccessProviderTypes.MySql)
            {
                return(GetDbProviderFactory("MySql.Data.MySqlClient.MySqlClientFactory", "MySql.Data"));
            }
            if (type == DataAccessProviderTypes.PostgreSql)
            {
                return(GetDbProviderFactory("Npgsql.NpgsqlFactory", "Npgsql"));
            }
#if NETFULL
            if (type == DataAccessProviderTypes.OleDb)
            {
                return(System.Data.OleDb.OleDbFactory.Instance);
            }
            if (type == DataAccessProviderTypes.SqlServerCompact)
            {
                return(DbProviderFactories.GetFactory("System.Data.SqlServerCe.4.0"));
            }
#endif

            throw new NotSupportedException(string.Format(Resources.UnsupportedProviderFactory, type.ToString()));
        }
Ejemplo n.º 5
0
        private static DbProviderFactory GetDbProviderFactory(DataAccessProviderTypes type)
        {
            if (type == DataAccessProviderTypes.SqlServer)
            {
                return(GetDbProviderFactory("System.Data.SqlClient.SqlClientFactory", "System.Data.SqlClient"));
            }

            if (type == DataAccessProviderTypes.SqlServerCore)
            {
                return(GetDbProviderFactory("Microsoft.Data.SqlClient.SqlClientFactory", "Microsoft.Data.SqlClient"));
            }

            if (type == DataAccessProviderTypes.SqLite)
            {
                return(GetDbProviderFactory("Microsoft.Data.Sqlite.SqliteFactory", "Microsoft.Data.Sqlite"));
            }

            if (type == DataAccessProviderTypes.MySql)
            {
                return(GetDbProviderFactory("MySql.Data.MySqlClient.MySqlClientFactory", "MySql.Data"));
            }

            if (type == DataAccessProviderTypes.PostgreSql)
            {
                return(GetDbProviderFactory("Npgsql.NpgsqlFactory", "Npgsql"));
            }

            if (type == DataAccessProviderTypes.Oracle)
            {
                return(GetDbProviderFactory("Oracle.DataAccess.Client.OracleClientFactory", "Oracle.DataAccess"));
            }

            throw new NotSupportedException(string.Format("Unsupported Provider Factory specified: {0}", type.ToString()));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// This method loads various providers dynamically similar to the
        /// way that DbProviderFactories.GetFactory() works except that
        /// this API is not available on .NET Standard 2.0
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public static DbProviderFactory GetSqlProviderFactory(DataAccessProviderTypes type)
        {
            if (type == DataAccessProviderTypes.SqlServer)
            {
                return(SqlClientFactory.Instance);
            }

            if (type == DataAccessProviderTypes.SqLite)
            {
#if NETCORE
                var instance = ReflectionUtils.GetStaticProperty("Microsoft.Data.Sqlite.SqliteFactory", "Instance");
                if (instance == null)
                {
                    var a = ReflectionUtils.LoadAssembly("Microsoft.Data.Sqlite");
                    if (a != null)
                    {
                        instance = ReflectionUtils.GetStaticProperty("Microsoft.Data.Sqlite.SqliteFactory", "Instance");
                    }
                }

                if (instance == null)
                {
                    throw new InvalidOperationException("Couldn't load SqLite Provider factory. Please make sure the Microsoft.Data.Sqlite package has been added to your project");
                }

                return(instance as DbProviderFactory);
#else
                var instance = ReflectionUtils.GetStaticProperty("System.Data.Sqlite.SQLiteFactory", "Instance");
                if (instance == null)
                {
                    var a = ReflectionUtils.LoadAssembly("System.Data.SQLite");
                    if (a != null)
                    {
                        instance = ReflectionUtils.GetStaticProperty("System.Data.SQLite.SQLiteFactory", "Instance");
                    }
                }

                if (instance == null)
                {
                    throw new InvalidOperationException(
                              "Couldn't load SqLite Provider factory. Please make sure the System.Data.SQLite reference has been added to your project");
                }
                return(instance as DbProviderFactory);
#endif
            }

            throw new InvalidOperationException("Unsupported Provider Factory specified: " + type);
        }
Ejemplo n.º 7
0
        public static DbProviderFactory GetDbProviderFactory(DataAccessProviderTypes type)
        {
            switch (type)
            {
            case DataAccessProviderTypes.SqlServer:
                return(SqlClientFactory.Instance);

            case DataAccessProviderTypes.SqLite:
                return(GetDbProviderFactory("Microsoft.Data.Sqlite.SqliteFactory", "Microsoft.Data.Sqlite"));

            case DataAccessProviderTypes.MySql:
                return(GetDbProviderFactory("MySql.Data.MySqlClient.MySqlClientFactory", "MySql.Data"));

            case DataAccessProviderTypes.PostgreSql:
                return(GetDbProviderFactory("Npgsql.NpgsqlFactory", "Npgsql"));

            default:
                throw new NotSupportedException(string.Format(Resources.UnsupportedProviderFactory, type.ToString()));
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// This method loads various providers dynamically similar to the
        /// way that DbProviderFactories.GetFactory() works except that
        /// this API is not available on .NET Standard 2.0
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public static DbProviderFactory GetDbProviderFactory(DataAccessProviderTypes type)
        {
            if (type == DataAccessProviderTypes.SqlServer)
            {
                return(GetDbProviderFactory("System.Data.SqlClient.SqlClientFactory", "System.Data.SqlClient"));
            }

            if (type == DataAccessProviderTypes.SqLite)
            {
                // SqLite support in .NET Standard available now
                return(GetDbProviderFactory("System.Data.SQLite.SQLiteFactory", "System.Data.SQLite"));
                //#if NETFULL
                //#else
                //                return GetDbProviderFactory("Microsoft.Data.Sqlite.SqliteFactory", "Microsoft.Data.Sqlite");
                //#endif
            }
            if (type == DataAccessProviderTypes.MySql)
            {
                return(GetDbProviderFactory("MySql.Data.MySqlClient.MySqlClientFactory", "MySql.Data"));
            }
            if (type == DataAccessProviderTypes.PostgreSql)
            {
                return(GetDbProviderFactory("Npgsql.NpgsqlFactory", "Npgsql"));
            }
#if NETFULL
            if (type == DataAccessProviderTypes.OleDb)
            {
                return(System.Data.OleDb.OleDbFactory.Instance);
            }
            if (type == DataAccessProviderTypes.SqlServerCompact)
            {
                return(DbProviderFactories.GetFactory("System.Data.SqlServerCe.4.0"));
            }
#endif

            throw new NotSupportedException(string.Format("Unsupported Provider Factory specified: {0}", type.ToString()));
        }
Ejemplo n.º 9
0
 public static DbConnection CreateConnection(string connectionString, DataAccessProviderTypes providerType)
 {
     return(CreateConnection(connectionString, GetProviderInvariantName(providerType)));
 }
Ejemplo n.º 10
0
 public SqlDataAccess(string connectionString, DataAccessProviderTypes providerType)
     : base(connectionString, providerType)
 {
 }