32 lines
1.1 KiB
C#
32 lines
1.1 KiB
C#
using System.Data;
|
|
using Microsoft.Extensions.Configuration;
|
|
using MySql.Data.MySqlClient;
|
|
using ServerLib.RDB.Database;
|
|
|
|
namespace MMOserver.RDB;
|
|
|
|
public class DbConnectionFactory : IDbConnectionFactory
|
|
{
|
|
private readonly string connectionString;
|
|
|
|
public DbConnectionFactory(IConfiguration config)
|
|
{
|
|
IConfigurationSection db = config.GetSection("Database");
|
|
connectionString = $"Server={db["Host"]};" +
|
|
$"Port={db["Port"]};" +
|
|
$"Database={db["Name"]};" +
|
|
$"User={db["User"]};" +
|
|
$"Password={db["Password"]};" +
|
|
$"Pooling=true;" +
|
|
$"MinimumPoolSize={db["Pooling:MinimumPoolSize"]};" +
|
|
$"MaximumPoolSize={db["Pooling:MaximumPoolSize"]};" +
|
|
$"ConnectionTimeout={db["Pooling:ConnectionTimeout"]};" +
|
|
$"ConnectionIdleTimeout={db["Pooling:ConnectionIdleTimeout"]};";
|
|
}
|
|
|
|
public IDbConnection CreateConnection()
|
|
{
|
|
return new MySqlConnection(connectionString);
|
|
}
|
|
}
|