Esempio n. 1
0
 /// <summary>
 /// Initialize<br/>
 /// 初始化<br/>
 /// </summary>
 /// <param name="session">NHibernate session</param>
 /// <param name="database">Database type</param>
 public NHibernateDatabaseContext(ISession session, string database)
 {
     Session          = session;
     Transaction      = null;
     TransactionLevel = 0;
     databaseType     = database;
     CommandLogger    = Application.Ioc.Resolve <IDatabaseCommandLogger>(IfUnresolved.ReturnDefault);
 }
Esempio n. 2
0
 /// <summary>
 /// Initialize<br/>
 /// 初始化<br/>
 /// </summary>
 /// <param name="connectionUrl">Connection url</param>
 /// <param name="mappings">Dapper entity mappings</param>
 public MongoDBDatabaseContext(
     MongoUrl connectionUrl,
     MongoDBEntityMappings mappings)
 {
     Mappings      = mappings;
     MongoDatabase = new MongoClient(connectionUrl).GetDatabase(connectionUrl.DatabaseName);
     CommandLogger = Application.Ioc.Resolve <IDatabaseCommandLogger>(IfUnresolved.ReturnDefault);
 }
Esempio n. 3
0
        /// <summary>
        /// Initialize<br/>
        /// 初始化<br/>
        /// </summary>
        /// <param name="connectionUrl">Connection url</param>
        /// <param name="mappings">Dapper entity mappings</param>
        public MongoDBDatabaseContext(
            MongoUrl connectionUrl,
            MongoDBEntityMappings mappings)
        {
            Mappings = mappings;
            var mongoClientSettings = MongoClientSettings.FromUrl(connectionUrl);

            mongoClientSettings.ClusterConfigurator = cb => {
                cb.Subscribe <CommandStartedEvent>(e => {
                    CommandLogger?.LogCommand(this, $"{e.CommandName}: {e.Command.ToJson()}", e.Command);
                });
            };
            MongoDatabase = new MongoClient(mongoClientSettings).GetDatabase(connectionUrl.DatabaseName);
            CommandLogger = Application.Ioc.Resolve <IDatabaseCommandLogger>(IfUnresolved.ReturnDefault);
        }
Esempio n. 4
0
        /// <summary>
        /// Initialize<br/>
        /// 初始化<br/>
        /// </summary>
        public EFCoreDatabaseContext(
            string database, string connectionString,
            IList <IDatabaseInitializeHandler> handlers,
            IList <IEntityMappingProvider> providers) :
            base(database, connectionString)
        {
            Transaction      = null;
            TransactionLevel = 0;
            databaseType     = database;
            Handlers         = handlers;
            Providers        = providers;
            CommandLogger    = Application.Ioc.Resolve <IDatabaseCommandLogger>(IfUnresolved.ReturnDefault);
            // Register logger
            var serviceProvider = this.GetInfrastructure <IServiceProvider>();
            var loggerFactory   = serviceProvider.GetService <ILoggerFactory>();

            loggerFactory.AddProvider(new EFCoreLoggerProvider(this));
        }
Esempio n. 5
0
        /// <summary>
        /// Initialize<br/>
        /// 初始化<br/>
        /// </summary>
        /// <param name="mappings">Dapper entity mappings</param>
        /// <param name="database">Database type</param>
        /// <param name="connectionString">Connection string</param>
        public DapperDatabaseContext(DapperEntityMappings mappings,
                                     string database, string connectionString)
        {
            Mappings         = mappings;
            Connection       = null;
            Transaction      = null;
            TransactionLevel = 0;
            databaseType     = database;
            // Get default command logger
            CommandLogger = Application.Ioc.Resolve <IDatabaseCommandLogger>(IfUnresolved.ReturnDefault);
            // Create database connection
            var pathConfig = Application.Ioc.Resolve <LocalPathConfig>();

            if (string.Compare(database, "MSSQL", true, CultureInfo.InvariantCulture) == 0)
            {
                Connection = new Wrappers.SqlConnection(
                    new SqlConnection(connectionString), this);
            }
            else if (string.Compare(database, "SQLite", true, CultureInfo.InvariantCulture) == 0)
            {
                connectionString = connectionString.Replace("{{App_Data}}", pathConfig.AppDataDirectory);
                Connection       = new Wrappers.SqliteConnection(
                    new SqliteConnection(connectionString), this);
            }
            else if (string.Compare(database, "MySQL", true, CultureInfo.InvariantCulture) == 0)
            {
                Connection = new Wrappers.MySqlConnection(
                    new MySqlConnection(connectionString), this);
            }
            else if (string.Compare(database, "PostgreSQL", true, CultureInfo.InvariantCulture) == 0)
            {
                Connection = new Wrappers.NpgsqlConnection(
                    new NpgsqlConnection(connectionString), this);
            }
            else
            {
                throw new ArgumentException($"unsupported database type {database}");
            }
            Connection.Open();
        }
Esempio n. 6
0
 /// <summary>
 /// Initialize<br/>
 /// 初始化<br/>
 /// </summary>
 public InMemoryDatabaseContext(InMemoryDatabaseStore store)
 {
     Store         = store;
     CommandLogger = Application.Ioc.Resolve <IDatabaseCommandLogger>(IfUnresolved.ReturnDefault);
 }