public static IOrmLiteDialectProviderFactory CreateOrmLiteDialectProviderFactory(string providerName, params object[] args) { lock (lockObject) { if (providerFactoryCache.ContainsKey(providerName)) { return(providerFactoryCache[providerName]); } else { Type dialectProviderFactoryType = Type.GetType(providerName); if (dialectProviderFactoryType == null) { throw new InfrastructureException("The OrmLiteDialectProviderFactory defined by type {0} doesn't exist.", dialectProviderFactoryType.Name); } IOrmLiteDialectProviderFactory providerFactory = (IOrmLiteDialectProviderFactory)Activator.CreateInstance(dialectProviderFactoryType, args); if (!providerFactoryCache.ContainsKey(providerName)) { providerFactoryCache.Add(providerName, providerFactory); } return(providerFactory); } } }
public LiteRepositoryContext(string connectionStringSectionName) { var connectionStringSetting = ConfigurationManager.ConnectionStrings[connectionStringSectionName]; if (connectionStringSetting == null) { throw new ConfigException("The connection string section {0} has not been configured yet.", connectionStringSectionName); } if (!connectionStringSetting.ProviderName.HasValue()) { throw new ConfigException("The provider name has not been specified in the connection string settings section yet."); } if (!connectionStringSetting.ConnectionString.HasValue()) { throw new ConfigException("The connection string has not been specified in the connection string settings section yet."); } string providerName = connectionStringSetting.ProviderName; IOrmLiteDialectProviderFactory providerFactory = OrmLiteDialectProviderFactories.CreateOrmLiteDialectProviderFactory(providerName); if (providerFactory == null) { throw new DatabaseException("The instance of IOrmLiteDialectProviderFactory is null. Please specify an valid OrmLiteDialectProviderFactory"); } string connectionString = connectionStringSetting.ConnectionString; this.liteConnectionFactory = new OrmLiteConnectionFactory(connectionString, providerFactory.DialectProvider); }