示例#1
0
        public static IDbAccessor CreateAccessor(DbAccessorType type, IDb db)
        {
            var setup = GetSetup(type, db);

            if (type == DbAccessorType.MsSql)
            {
                return(new MsSqlAccessor((IMsSqlScripter)setup.Scripter, setup.Mapper, db));
            }

            return(new DbAccessor(setup.Scripter, setup.Mapper, db));
        }
示例#2
0
        public static IDbAsyncAccessor CreateAccessor(DbAccessorType type, IDb db)
        {
            var setup = DbFactory.GetSetup(type, db);

            if (type == DbAccessorType.MsSql)
            {
                return(new MsSqlAsyncAccessor((IMsSqlScripter)setup.Scripter, setup.Mapper, db, setup.Aggregator));
            }

            return(new DbAsyncAccessor(setup.Scripter, setup.Mapper, db, setup.Aggregator));
        }
示例#3
0
        internal static AccessorSetup GetSetup(DbAccessorType type, IDb db)
        {
            var aggregator = new DbAggregator();
            var mapper     = new DbMapper(db);

            Func <ISqlBuilder> builders;

            switch (type)
            {
            case DbAccessorType.MsSql:
            {
                Func <IMsSqlBuilder> msbuilders = () => new MsSqlBuilder();

                var msscripter = new MsSqlScripter(db, msbuilders);

                return(new AccessorSetup(msscripter, mapper, aggregator));
            }

            case DbAccessorType.SqLite:
            {
                builders = () => new SqLiteBuilder();
            }
            break;

            case DbAccessorType.MySql:
            {
                builders = () => new MySqlBuilder();
            }
            break;

            case DbAccessorType.Oracle:
            {
                builders = () => new OracleBuilder();
            }
            break;

            default:
                throw new InvalidOperationException(string.Format("Unsupported DbAccessorType value of '{0}'", type));
            }

            var scripter = new DbScripter(db, builders);

            return(new AccessorSetup(scripter, mapper, aggregator));
        }
示例#4
0
        public Db(DbAccessorType type, AccessorExtension extensions, Func <IDbConnection> connections)
        {
            m_Type        = type;
            m_Extensions  = extensions;
            m_Connections = connections;

            switch (m_Type)
            {
            case DbAccessorType.MsSql:
                ParameterLimit     = 1000; // half of what is available
                ParameterNameLimit = 64;   // half of what is available
                break;

            default:
                ParameterLimit     = 1000; // using mssql's as a base
                ParameterNameLimit = 64;   // using mssql's as a base
                break;
            }
        }
示例#5
0
 public static IDbAsyncAccessor CreateAccessor(DbAccessorType type, AccessorExtension extensions, Func <IDbConnection> connections)
 {
     return(CreateAccessor(type, new Db(type, extensions, connections)));
 }
示例#6
0
 public static IDbAccessorSlim CreateSlimAccessor(DbAccessorType type, Func <IDbConnection> connections)
 {
     return(CreateAccessor(type, new Db(type, AccessorExtension.None, connections)));
 }
示例#7
0
 public static IDbAccessorSlim CreateSlimAccessor(DbAccessorType type, IDb db)
 {
     return(CreateAccessor(type, db));
 }