diff --git a/Falcon.SugarApi/DatabaseManager/ConnectionConfigWallpaper.cs b/Falcon.SugarApi/DatabaseManager/ConnectionConfigWallpaper.cs new file mode 100644 index 0000000..ccf99e7 --- /dev/null +++ b/Falcon.SugarApi/DatabaseManager/ConnectionConfigWallpaper.cs @@ -0,0 +1,31 @@ +using Microsoft.Extensions.Logging; +using SqlSugar; +using System; + +namespace Falcon.SugarApi.DatabaseManager +{ + /// + /// 连接配置 + /// + public class ConnectionConfigWallpaper:ConnectionConfig + { + /// + /// 构造连接配置 + /// + /// 数据库定义 + 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; + } + } + +} diff --git a/Falcon.SugarApi/DatabaseManager/DatabaseDefines.cs b/Falcon.SugarApi/DatabaseManager/DatabaseDefines.cs new file mode 100644 index 0000000..dcf1e66 --- /dev/null +++ b/Falcon.SugarApi/DatabaseManager/DatabaseDefines.cs @@ -0,0 +1,28 @@ +using SqlSugar; + +namespace Falcon.SugarApi.DatabaseManager +{ + /// + /// 数据库定义 + /// + public class DatabaseDefines + { + /// + /// 数据库名称 + /// + public string Name { get; set; } + /// + /// 是否记录数据库log + /// + public bool UseLogger { get; set; } + /// + /// 数据库类型 + /// + public string DbType { get; set; } + /// + /// 链接字符串 + /// + public string ConnectionString { get; set; } + } + +} diff --git a/Falcon.SugarApi/DatabaseManager/DbContextBase.cs b/Falcon.SugarApi/DatabaseManager/DbContextBase.cs new file mode 100644 index 0000000..d165f59 --- /dev/null +++ b/Falcon.SugarApi/DatabaseManager/DbContextBase.cs @@ -0,0 +1,27 @@ +using Microsoft.Extensions.Logging; +using SqlSugar; +using System; + +namespace Falcon.SugarApi.DatabaseManager +{ + /// + /// 数据库上下文基类 + /// + public abstract class DbContextBase:SqlSugarClient + { + /// + /// 保存数据库日志 + /// + public ILogger Logger { get; set; } + + /// + /// 使用链接配置构造数据库链接 + /// + /// 数据库配置 + /// 服务提供器 + public DbContextBase(ConnectionConfig config,IServiceProvider service) : base(config) { + this.Logger = service.GetService(typeof(ILogger<>).MakeGenericType(GetType())) as ILogger ?? throw new NullReferenceException("ILogger"); + } + + } +}