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);
                }
            }
        }
Exemplo n.º 2
0
        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);
        }