本次提交包含了两个主要部分:一个关键的数据库并发问题修复,以及一个关于历史记录功能的增强。

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:
2025-10-03 00:05:17 +08:00
parent f330f67767
commit d6bb606b0e
6 changed files with 47 additions and 82 deletions

View File

@@ -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;
}
}

View File

@@ -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; }
}