Ejemplo n.º 1
0
        public static IStoreOption RegisterSqlServer(this IStoreOption option)
        {
            SqlDialectFactory.SqlDialects["sqlconnection"] = new SqlServerDialect();
            CommandInterpreterFactory.CommandInterpreters["sqlconnection"] = d => new SqlServerCommandInterpreter(d);

            return(option);
        }
Ejemplo n.º 2
0
        public static IStoreOption RegisterPostgreSql(this IStoreOption option)
        {
            SqlDialectFactory.SqlDialects["npgsqlconnection"] = new PostgreSqlDialect();
            CommandInterpreterFactory.CommandInterpreters["npgsqlconnection"] = d => new PostgreSqlCommandInterpreter(d);

            return(option);
        }
Ejemplo n.º 3
0
        public static IStoreOption UseConfig(this IStoreOption option, DataConfig config)
        {
            option.SqlMaps = config.SqlMaps;

            switch (config.DatabaseType.ToLower())
            {
            case "sqlserver":
                option.UseSqlServer(config.ConnectionString, IsolationLevel.ReadUncommitted);
                break;

            case "Sqlite":
                var databaseFolder = App.GetLocalPath("appdata/db/", true);
                var databaseFile   = Path.Combine(databaseFolder, $"{option.Name}.db");
                option.UseSqLite($"Data Source={databaseFile};Cache=Shared", IsolationLevel.ReadUncommitted);
                break;

            case "MySql":
                option.UseMySql(config.ConnectionString, IsolationLevel.ReadUncommitted);
                break;

            case "Postgres":
                option.UsePostgreSql(config.ConnectionString, IsolationLevel.ReadUncommitted);
                break;

            default:
                throw new AceException("Unknown database provider: " + config.DatabaseType);
            }

            return(option);
        }
Ejemplo n.º 4
0
 public static IStoreOption UseSqLite(
     this IStoreOption option,
     string connectionString)
 {
     return(UseSqLite(
                option,
                connectionString,
                IsolationLevel.Serializable));
 }
Ejemplo n.º 5
0
        public static IStoreOption UsePostgreSql(
            this IStoreOption option,
            string connectionString,
            IsolationLevel isolationLevel)
        {
            if (option == null)
            {
                throw new ArgumentNullException(nameof(option));
            }

            if (String.IsNullOrWhiteSpace(connectionString))
            {
                throw new ArgumentException(nameof(connectionString));
            }

            RegisterPostgreSql(option);
            option.ConnectionFactory = new DbConnectionFactory <NpgsqlConnection>(connectionString);
            option.IsolationLevel    = isolationLevel;

            return(option);
        }
Ejemplo n.º 6
0
        public static IStoreOption UseSqLite(
            this IStoreOption option,
            string connectionString,
            IsolationLevel isolationLevel,
            bool shareConnection = false)
        {
            if (option == null)
            {
                throw new ArgumentNullException(nameof(option));
            }

            if (String.IsNullOrWhiteSpace(connectionString))
            {
                throw new ArgumentException(nameof(connectionString));
            }

            RegisterSqLite(option);
            option.ConnectionFactory = new DbConnectionFactory <SqliteConnection>(connectionString, shareConnection);
            option.IsolationLevel    = isolationLevel;

            return(option);
        }
Ejemplo n.º 7
0
 public static IStoreOption UsePostgreSql(
     this IStoreOption option,
     string connectionString)
 {
     return(UsePostgreSql(option, connectionString, IsolationLevel.ReadUncommitted));
 }
Ejemplo n.º 8
0
        /*public static IStoreOption DisableQueryGating(this IStoreOption option)
         * {
         *  option.QueryGatingEnabled = false;
         *  return option;
         * }*/

        public static IStoreOption SetSqlMaps(this IStoreOption option, string[] sqlmaps)
        {
            option.SqlMaps = sqlmaps;
            return(option);
        }
Ejemplo n.º 9
0
 public static IStoreOption SetSessionPoolSize(this IStoreOption option, int size)
 {
     option.SessionPoolSize = size;
     return(option);
 }
Ejemplo n.º 10
0
 public static IStoreOption AutoCreateSchema(this IStoreOption option, bool autoCreateSchema = true)
 {
     option.AutoCreateSchema = autoCreateSchema;
     return(option);
 }
Ejemplo n.º 11
0
 public static IStoreOption SetConnectionFactory(this IStoreOption option, IConnectionFactory connectionFactory)
 {
     option.ConnectionFactory = connectionFactory;
     return(option);
 }
Ejemplo n.º 12
0
 public static IStoreOption SetIsolationLevel(this IStoreOption option, IsolationLevel isolationLevel)
 {
     option.IsolationLevel = isolationLevel;
     return(option);
 }
Ejemplo n.º 13
0
 public static IStoreOption UseDatabase(this IStoreOption option, string database)
 {
     option.Name = database;
     return(option);
 }
Ejemplo n.º 14
0
        public static IStoreOption UseInMemory(this IStoreOption option)
        {
            const string inMemoryConnectionString = "Data Source=:memory:";

            return(UseSqLite(option, inMemoryConnectionString, IsolationLevel.Serializable, shareConnection: true));
        }
Ejemplo n.º 15
0
        public Store(IStoreOption option)
        {
            Option = option;

            AfterOptionAssigned();
        }