DatabaseManager实现数据库插件组件化
This commit is contained in:
parent
900c55a9c9
commit
0874e17cc2
31
Falcon.SugarApi/DatabaseManager/ConnectionConfigWallpaper.cs
Normal file
31
Falcon.SugarApi/DatabaseManager/ConnectionConfigWallpaper.cs
Normal file
|
@ -0,0 +1,31 @@
|
|||
using Microsoft.Extensions.Logging;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
|
||||
namespace Falcon.SugarApi.DatabaseManager
|
||||
{
|
||||
/// <summary>
|
||||
/// 连接配置
|
||||
/// </summary>
|
||||
public class ConnectionConfigWallpaper:ConnectionConfig
|
||||
{
|
||||
/// <summary>
|
||||
/// 构造连接配置
|
||||
/// </summary>
|
||||
/// <param name="def">数据库定义</param>
|
||||
public ConnectionConfigWallpaper(DatabaseDefines def) {
|
||||
base.ConfigId = def.Name;
|
||||
base.ConnectionString = def.ConnectionString;
|
||||
|
||||
foreach(var dt in Enum.GetNames(typeof(DbType))) {
|
||||
if(dt.ToLower() == def.DbType.ToLower()) {
|
||||
base.DbType = (DbType)Enum.Parse(typeof(DbType),dt);
|
||||
break;
|
||||
}
|
||||
}
|
||||
base.IsAutoCloseConnection = true;
|
||||
base.InitKeyType = InitKeyType.Attribute;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
28
Falcon.SugarApi/DatabaseManager/DatabaseDefines.cs
Normal file
28
Falcon.SugarApi/DatabaseManager/DatabaseDefines.cs
Normal file
|
@ -0,0 +1,28 @@
|
|||
using SqlSugar;
|
||||
|
||||
namespace Falcon.SugarApi.DatabaseManager
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据库定义
|
||||
/// </summary>
|
||||
public class DatabaseDefines
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据库名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
/// <summary>
|
||||
/// 是否记录数据库log
|
||||
/// </summary>
|
||||
public bool UseLogger { get; set; }
|
||||
/// <summary>
|
||||
/// 数据库类型
|
||||
/// </summary>
|
||||
public string DbType { get; set; }
|
||||
/// <summary>
|
||||
/// 链接字符串
|
||||
/// </summary>
|
||||
public string ConnectionString { get; set; }
|
||||
}
|
||||
|
||||
}
|
27
Falcon.SugarApi/DatabaseManager/DbContextBase.cs
Normal file
27
Falcon.SugarApi/DatabaseManager/DbContextBase.cs
Normal file
|
@ -0,0 +1,27 @@
|
|||
using Microsoft.Extensions.Logging;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
|
||||
namespace Falcon.SugarApi.DatabaseManager
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据库上下文基类
|
||||
/// </summary>
|
||||
public abstract class DbContextBase:SqlSugarClient
|
||||
{
|
||||
/// <summary>
|
||||
/// 保存数据库日志
|
||||
/// </summary>
|
||||
public ILogger Logger { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 使用链接配置构造数据库链接
|
||||
/// </summary>
|
||||
/// <param name="config">数据库配置</param>
|
||||
/// <param name="service">服务提供器</param>
|
||||
public DbContextBase(ConnectionConfig config,IServiceProvider service) : base(config) {
|
||||
this.Logger = service.GetService(typeof(ILogger<>).MakeGenericType(GetType())) as ILogger ?? throw new NullReferenceException("ILogger");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user