本次提交包含了两个主要部分:一个关键的数据库并发问题修复,以及一个关于历史记录功能的增强。
1. 数据库并发修复 (Bug Fix):
2. 历史记录功能增强 (Feature):
`
fix(db): 修复数据库并发连接问题并增强历史记录功能
`
正文:
`
本次提交主要包含一个关键的 Bug 修复和一项功能增强。
1. 修复数据库并发问题:
* 重构 SqlSugarDbContext,使其作为 SqlSugarClient 的工厂。
* GetInstance() 方法现在每次调用都会返回一个新的客户端实例,解决了因单例客户端导致的多线程并发访问 MySqlConnection 的问题。
2. 增强历史记录功能:
* 为 VariableHistory 相关的模型、DTO 和实体添加了 NumericValue 属性,以便在历史记录中同时存储数值和字符串值。
* 更新了 HistoryProcessor 以保存 NumericValue。
* 对 ValueConvertProcessor 的逻辑进行了重构,以更好地支持值转换流程。
This commit is contained in:
@@ -5,14 +5,20 @@ namespace DMS.Infrastructure.Data;
|
||||
|
||||
public class SqlSugarDbContext
|
||||
{
|
||||
private readonly SqlSugarClient _db;
|
||||
private readonly AppSettings _settings;
|
||||
|
||||
public SqlSugarDbContext(AppSettings settings)
|
||||
{
|
||||
var connectionString = settings.ToConnectionString();
|
||||
var dbType = (SqlSugar.DbType)Enum.Parse(typeof(SqlSugar.DbType), settings.Database.DbType);
|
||||
_settings = settings;
|
||||
}
|
||||
|
||||
_db = new SqlSugarClient(new ConnectionConfig
|
||||
|
||||
public SqlSugarClient GetInstance()
|
||||
{
|
||||
var connectionString = _settings.ToConnectionString();
|
||||
var dbType = (SqlSugar.DbType)Enum.Parse(typeof(SqlSugar.DbType), _settings.Database.DbType);
|
||||
|
||||
return new SqlSugarClient(new ConnectionConfig
|
||||
{
|
||||
ConnectionString = connectionString,
|
||||
DbType = dbType,
|
||||
@@ -20,10 +26,4 @@ public class SqlSugarDbContext
|
||||
InitKeyType = InitKeyType.Attribute
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public SqlSugarClient GetInstance()
|
||||
{
|
||||
return _db;
|
||||
}
|
||||
}
|
||||
@@ -9,5 +9,6 @@ public class DbVariableHistory
|
||||
public long Id { get; set; }
|
||||
public int VariableId { get; set; }
|
||||
public string Value { get; set; }
|
||||
public double NumericValue { get; set; }
|
||||
public DateTime Timestamp { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user