/// <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); }
/// <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); }
/// <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); }
/// <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)); }
/// <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(); }
/// <summary> /// Initialize<br/> /// 初始化<br/> /// </summary> public InMemoryDatabaseContext(InMemoryDatabaseStore store) { Store = store; CommandLogger = Application.Ioc.Resolve <IDatabaseCommandLogger>(IfUnresolved.ReturnDefault); }