초기커밋
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
using ServerCore;
|
||||
using ServerBase;
|
||||
using ServerCommon;
|
||||
|
||||
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace BrokerCore.Repository.Context;
|
||||
|
||||
using BrokerApiCore.Repository.SqlConfig;
|
||||
|
||||
using DbEntity;
|
||||
|
||||
using Microsoft.EntityFrameworkCore.Design;
|
||||
|
||||
using SqlConfig;
|
||||
|
||||
public class MetaverseBrokerDbContext: DbContext
|
||||
{
|
||||
public DbSet<SapphireExchangeOrder> SapphireExchangeOrders { get; set; }
|
||||
public DbSet<PlanetInfo> PlanetInfos { get; set; }
|
||||
public DbSet<PlanetItemExchangeOrder> PlanetItemExchangeOrders { get; set; }
|
||||
//PlanetItemExchangeOrderAmountUserLimit
|
||||
public DbSet<PlanetItemExchangeOrderAmountUserLimit> PlanetItemExchangeOrderAmountUserLimits { get; set; }
|
||||
//PlanetItemExchangeOrderAmountTotalLimit
|
||||
public DbSet<PlanetItemExchangeOrderAmountTotalLimit> PlanetItemExchangeOrderAmountTotalLimits { get; set; }
|
||||
|
||||
public MetaverseBrokerDbContext(DbContextOptions<MetaverseBrokerDbContext> options) : base(options)
|
||||
{
|
||||
// base.Database.EnsureCreated();
|
||||
}
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
modelBuilder.ApplyConfiguration(new PlanetInfoConfig());
|
||||
// todo PlanetExchangeOrderConfig으로 교체 예정
|
||||
modelBuilder.ApplyConfiguration(new SapphireExchangeOrderConfig());
|
||||
modelBuilder.ApplyConfiguration(new PlanetExchangeOrderConfig());
|
||||
modelBuilder.ApplyConfiguration(new PlanetItemExchangeOrderAmountUserLimitConfig());
|
||||
modelBuilder.ApplyConfiguration(new PlanetItemExchangeOrderAmountTotalLimitConfig());
|
||||
base.OnModelCreating(modelBuilder);
|
||||
}
|
||||
}
|
||||
|
||||
// ef core 마이그레이션 도구에서 디자인타임에 사용함
|
||||
public class MetaverseBrokerDbContextFactory : IDesignTimeDbContextFactory<MetaverseBrokerDbContext>
|
||||
{
|
||||
public MetaverseBrokerDbContext CreateDbContext(string[] args)
|
||||
{
|
||||
// nlog 설정
|
||||
var nlog_config_path = "../../bin/Debug/Config/nlog.config";
|
||||
var full_path = Path.GetFullPath(nlog_config_path);
|
||||
Console.WriteLine("[MetaverseBrokerDbContextFactory] Full path: {0}", full_path);
|
||||
Log.NLogFileName = full_path;
|
||||
Log.initLog("BrokerApiServer", "Developer");
|
||||
|
||||
var server_config = new ServerConfigMetaverseBroker();
|
||||
server_config.setConfigFilePath("../../bin/Debug/Config/ServerConfig.json");
|
||||
server_config.tryLoadConfig().GetAwaiter().GetResult();
|
||||
var connection_string = server_config.MetaverseBroker?.MetaverseBrokerDbLocal;
|
||||
Console.WriteLine("[MetaverseBrokerDbContextFactory] Connection string: {0}", connection_string);
|
||||
if (string.IsNullOrEmpty(connection_string)) { throw new ApplicationException("Connection string is empty."); }
|
||||
|
||||
var mysql_version = ServerVersion.AutoDetect(connection_string);
|
||||
Console.WriteLine("[MetaverseBrokerDbContextFactory] Mysql vsersion: {0}", mysql_version.ToString());
|
||||
// var mysql_version = ServerVersion.Create(new Version(11, 6, 2), ServerType.MariaDb);
|
||||
var options_builder = new DbContextOptionsBuilder<MetaverseBrokerDbContext>();
|
||||
options_builder.UseMySql(connection_string, mysql_version, builder => builder.EnableRetryOnFailure(3)).EnableDetailedErrors();
|
||||
return new MetaverseBrokerDbContext(options_builder.Options);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user