Ejemplo n.º 1
0
        protected virtual LinqToDBProviderInfo GetLinqToDbProviderInfo(EFProviderInfo providerInfo)
        {
            var provInfo = new LinqToDBProviderInfo();

            var relational = providerInfo.Options?.Extensions.OfType <RelationalOptionsExtension>().FirstOrDefault();

            if (relational != null)
            {
                provInfo.Merge(GetLinqToDbProviderInfo(relational));
            }

            if (providerInfo.Connection != null)
            {
                provInfo.Merge(GetLinqToDbProviderInfo(providerInfo.Connection));
            }

            if (providerInfo.Context != null)
            {
                provInfo.Merge(GetLinqToDbProviderInfo(providerInfo.Context.Database));
            }

            return(provInfo);
        }
Ejemplo n.º 2
0
        protected virtual IDataProvider CreateLinqToDbDataProvider(EFProviderInfo providerInfo, LinqToDBProviderInfo provInfo,
                                                                   EFConnectionInfo connectionInfo)
        {
            if (provInfo.ProviderName == null)
            {
                throw new LinqToDBForEFToolsException("Can not detect data provider.");
            }

            switch (provInfo.ProviderName)
            {
            case ProviderName.SqlServer:
                return(CreateSqlServerProvider(SqlServerDefaultVersion, connectionInfo.ConnectionString));

            case ProviderName.MySql:
                return(new MySqlDataProvider());

            case ProviderName.PostgreSQL:
                return(CreatePotgreSqlProvider(PotgreSqlDefaultVersion, connectionInfo.ConnectionString));

            case ProviderName.SQLite:
                return(new SQLiteDataProvider());

            case ProviderName.Firebird:
                return(new FirebirdDataProvider());

            case ProviderName.DB2:
                return(new DB2DataProvider(ProviderName.DB2, DB2Version.LUW));

            case ProviderName.DB2LUW:
                return(new DB2DataProvider(ProviderName.DB2, DB2Version.LUW));

            case ProviderName.DB2zOS:
                return(new DB2DataProvider(ProviderName.DB2, DB2Version.zOS));

            case ProviderName.Oracle:
                return(new OracleDataProvider());

            case ProviderName.SqlCe:
                return(new SqlCeDataProvider());

            //case ProviderName.Access:
            //	return new AccessDataProvider();

            default:
                throw new LinqToDBForEFToolsException($"Can not instantiate data provider '{provInfo.ProviderName}'.");
            }
        }