更新依赖

This commit is contained in:
2248356998 qq.com
2025-10-10 21:41:24 +08:00
parent 19d9702606
commit 0fef7dcf3b
16 changed files with 152 additions and 146 deletions

View File

@@ -463,7 +463,7 @@ public static class ProcessHelper
StandardOutputEncoding = outputEncoding, StandardOutputEncoding = outputEncoding,
StandardErrorEncoding = outputEncoding, StandardErrorEncoding = outputEncoding,
}; };
var process = Process.Start(psi); using var process = Process.Start(psi);
if (process == null) return null; if (process == null) return null;
if (msWait > 0 && !process.WaitForExit(msWait)) if (msWait > 0 && !process.WaitForExit(msWait))

View File

@@ -13,7 +13,7 @@ namespace ThingsGateway.SqlSugar
/// <summary> /// <summary>
/// 用于同步操作的锁对象 /// 用于同步操作的锁对象
/// </summary> /// </summary>
internal static object LockObject = new object(); internal static readonly object LockObject = new object();
/// <summary> /// <summary>
/// SqlSugar提供者实例 /// SqlSugar提供者实例
/// </summary> /// </summary>

View File

@@ -31,61 +31,6 @@ namespace ThingsGateway.SqlSugar
/// 数据记录器 /// 数据记录器
/// </summary> /// </summary>
private IDataRecord DataRecord; private IDataRecord DataRecord;
/// <summary>
/// IsDBNull方法
/// </summary>
private static readonly MethodInfo isDBNullMethod = typeof(IDataRecord).GetMethod(nameof(IDataRecord.IsDBNull), new Type[] { typeof(int) });
/// <summary>
/// GetBoolean方法
/// </summary>
private static readonly MethodInfo getBoolean = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetBoolean), new Type[] { typeof(int) });
/// <summary>
/// GetByte方法
/// </summary>
private static readonly MethodInfo getByte = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetByte), new Type[] { typeof(int) });
/// <summary>
/// GetDateTime方法
/// </summary>
private static readonly MethodInfo getDateTime = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetDateTime), new Type[] { typeof(int) });
private static readonly MethodInfo getDecimal = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetDecimal), new[] { typeof(int) });
private static readonly MethodInfo getDouble = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetDouble), new[] { typeof(int) });
private static readonly MethodInfo getFloat = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetFloat), new[] { typeof(int) });
private static readonly MethodInfo getGuid = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetGuid), new[] { typeof(int) });
private static readonly MethodInfo getInt16 = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetInt16), new[] { typeof(int) });
private static readonly MethodInfo getInt32 = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetInt32), new[] { typeof(int) });
private static readonly MethodInfo getInt64 = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetInt64), new[] { typeof(int) });
private static readonly MethodInfo getString = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetString), new[] { typeof(int) });
private static readonly MethodInfo getdatetimeoffset = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetDateTimeOffset));
private static readonly MethodInfo getdatetimeoffsetDate = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetDateTimeOffsetDate));
private static readonly MethodInfo getStringGuid = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetStringGuid));
private static readonly MethodInfo getXelement = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetXelement));
private static readonly MethodInfo getConvertStringGuid = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertStringGuid));
private static readonly MethodInfo getEnum = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetEnum));
private static readonly MethodInfo getConvertString = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertString));
private static readonly MethodInfo getConvertFloat = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertFloat));
private static readonly MethodInfo getConvertBoolean = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertBoolean));
private static readonly MethodInfo getConvertByte = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertByte));
private static readonly MethodInfo getConvertChar = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertChar));
private static readonly MethodInfo getConvertDateTime = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertDateTime));
private static readonly MethodInfo getConvertTime = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertTime));
private static readonly MethodInfo getTime = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetTime));
private static readonly MethodInfo getConvertDecimal = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertDecimal));
private static readonly MethodInfo getConvertDouble = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertDouble));
private static readonly MethodInfo getConvertDoubleToFloat = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertDoubleToFloat));
private static readonly MethodInfo getConvertGuid = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertGuid));
private static readonly MethodInfo getConvertInt16 = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertInt16));
private static readonly MethodInfo getConvertInt32 = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertInt32));
private static readonly MethodInfo getConvertInt64 = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertInt64));
private static readonly MethodInfo getConvertEnum_Null = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertEnum_Null));
private static readonly MethodInfo getConvertdatetimeoffset = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertdatetimeoffset));
private static readonly MethodInfo getConvertdatetimeoffsetDate = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertdatetimeoffsetDate));
private static readonly MethodInfo getOtherNull = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetOtherNull));
private static readonly MethodInfo getOther = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetOther));
private static readonly MethodInfo getJson = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetJson));
private static readonly MethodInfo getArray = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetArray));
private static readonly MethodInfo getEntity = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetEntity), new[] { typeof(SqlSugarProvider) });
private static readonly MethodInfo getMyIntNull = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetMyIntNull));
private static readonly MethodInfo getMyInt = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetMyInt));
/// <summary> /// <summary>
/// 加载委托 /// 加载委托
@@ -219,7 +164,7 @@ namespace ThingsGateway.SqlSugar
Label endIfLabel = generator.DefineLabel(); Label endIfLabel = generator.DefineLabel();
generator.Emit(OpCodes.Ldarg_0); generator.Emit(OpCodes.Ldarg_0);
generator.Emit(OpCodes.Ldc_I4, i); generator.Emit(OpCodes.Ldc_I4, i);
generator.Emit(OpCodes.Callvirt, isDBNullMethod); generator.Emit(OpCodes.Callvirt, IDataReaderEntityBuilderHelpers.isDBNullMethod);
generator.Emit(OpCodes.Brtrue, endIfLabel); generator.Emit(OpCodes.Brtrue, endIfLabel);
generator.Emit(OpCodes.Ldloc, result); generator.Emit(OpCodes.Ldloc, result);
var method = (columnInfo.SqlParameterDbType as Type).GetMethod(nameof(ISugarDataConverter.QueryConverter)); var method = (columnInfo.SqlParameterDbType as Type).GetMethod(nameof(ISugarDataConverter.QueryConverter));
@@ -253,12 +198,12 @@ namespace ThingsGateway.SqlSugar
if (columnInfo.IsJson) if (columnInfo.IsJson)
{ {
MethodInfo jsonMethod = getJson.MakeGenericMethod(columnInfo.PropertyInfo.PropertyType); MethodInfo jsonMethod = IDataReaderEntityBuilderHelpers.getJson.MakeGenericMethod(columnInfo.PropertyInfo.PropertyType);
int i = DataRecord.GetOrdinal(fieldName); int i = DataRecord.GetOrdinal(fieldName);
Label endIfLabel = generator.DefineLabel(); Label endIfLabel = generator.DefineLabel();
generator.Emit(OpCodes.Ldarg_0); generator.Emit(OpCodes.Ldarg_0);
generator.Emit(OpCodes.Ldc_I4, i); generator.Emit(OpCodes.Ldc_I4, i);
generator.Emit(OpCodes.Callvirt, isDBNullMethod); generator.Emit(OpCodes.Callvirt, IDataReaderEntityBuilderHelpers.isDBNullMethod);
generator.Emit(OpCodes.Brtrue, endIfLabel); generator.Emit(OpCodes.Brtrue, endIfLabel);
generator.Emit(OpCodes.Ldloc, result); generator.Emit(OpCodes.Ldloc, result);
generator.Emit(OpCodes.Ldarg_0); generator.Emit(OpCodes.Ldarg_0);
@@ -278,12 +223,12 @@ namespace ThingsGateway.SqlSugar
} }
if (columnInfo.IsArray) if (columnInfo.IsArray)
{ {
MethodInfo arrayMehtod = getArray.MakeGenericMethod(columnInfo.PropertyInfo.PropertyType); MethodInfo arrayMehtod = IDataReaderEntityBuilderHelpers.getArray.MakeGenericMethod(columnInfo.PropertyInfo.PropertyType);
int i = DataRecord.GetOrdinal(fieldName); int i = DataRecord.GetOrdinal(fieldName);
Label endIfLabel = generator.DefineLabel(); Label endIfLabel = generator.DefineLabel();
generator.Emit(OpCodes.Ldarg_0); generator.Emit(OpCodes.Ldarg_0);
generator.Emit(OpCodes.Ldc_I4, i); generator.Emit(OpCodes.Ldc_I4, i);
generator.Emit(OpCodes.Callvirt, isDBNullMethod); generator.Emit(OpCodes.Callvirt, IDataReaderEntityBuilderHelpers.isDBNullMethod);
generator.Emit(OpCodes.Brtrue, endIfLabel); generator.Emit(OpCodes.Brtrue, endIfLabel);
generator.Emit(OpCodes.Ldloc, result); generator.Emit(OpCodes.Ldloc, result);
generator.Emit(OpCodes.Ldarg_0); generator.Emit(OpCodes.Ldarg_0);
@@ -298,7 +243,7 @@ namespace ThingsGateway.SqlSugar
Label endIfLabel = generator.DefineLabel(); Label endIfLabel = generator.DefineLabel();
generator.Emit(OpCodes.Ldarg_0); generator.Emit(OpCodes.Ldarg_0);
generator.Emit(OpCodes.Ldc_I4, i); generator.Emit(OpCodes.Ldc_I4, i);
generator.Emit(OpCodes.Callvirt, isDBNullMethod); generator.Emit(OpCodes.Callvirt, IDataReaderEntityBuilderHelpers.isDBNullMethod);
generator.Emit(OpCodes.Brtrue, endIfLabel); generator.Emit(OpCodes.Brtrue, endIfLabel);
generator.Emit(OpCodes.Ldloc, result); generator.Emit(OpCodes.Ldloc, result);
generator.Emit(OpCodes.Ldarg_0); generator.Emit(OpCodes.Ldarg_0);
@@ -332,7 +277,7 @@ namespace ThingsGateway.SqlSugar
generator.Emit(OpCodes.Ldarg_0); generator.Emit(OpCodes.Ldarg_0);
generator.Emit(OpCodes.Ldc_I4, i); generator.Emit(OpCodes.Ldc_I4, i);
generator.Emit(OpCodes.Callvirt, isDBNullMethod); generator.Emit(OpCodes.Callvirt, IDataReaderEntityBuilderHelpers.isDBNullMethod);
generator.Emit(OpCodes.Brtrue, endIfLabel); generator.Emit(OpCodes.Brtrue, endIfLabel);
generator.Emit(OpCodes.Ldloc, result); generator.Emit(OpCodes.Ldloc, result);
generator.Emit(OpCodes.Ldarg_0); generator.Emit(OpCodes.Ldarg_0);
@@ -378,7 +323,7 @@ namespace ThingsGateway.SqlSugar
{ {
if (provider.IsNoSql) if (provider.IsNoSql)
{ {
method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType); method = isNullableType ? IDataReaderEntityBuilderHelpers.getOtherNull.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getOther.MakeGenericMethod(bindPropertyType);
if (method.IsVirtual) if (method.IsVirtual)
generator.Emit(OpCodes.Callvirt, method); generator.Emit(OpCodes.Callvirt, method);
else else
@@ -393,39 +338,39 @@ namespace ThingsGateway.SqlSugar
{ {
if (bindPropertyType.IsEnum()) if (bindPropertyType.IsEnum())
{ {
method = isNullableType ? getConvertEnum_Null.MakeGenericMethod(bindPropertyType) : getEnum.MakeGenericMethod(bindPropertyType); method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertEnum_Null.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getEnum.MakeGenericMethod(bindPropertyType);
} }
else if (bindPropertyType == UtilConstants.IntType) else if (bindPropertyType == UtilConstants.IntType)
{ {
method = isNullableType ? getConvertInt32 : getInt32; method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertInt32 : IDataReaderEntityBuilderHelpers.getInt32;
} }
else if (bindPropertyType == UtilConstants.DateTimeOffsetType && SugarCompatible.IsFramework) else if (bindPropertyType == UtilConstants.DateTimeOffsetType && SugarCompatible.IsFramework)
{ {
method = isNullableType ? getConvertdatetimeoffset : getdatetimeoffset; method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertdatetimeoffset : IDataReaderEntityBuilderHelpers.getdatetimeoffset;
} }
else if (bindPropertyType == UtilConstants.ByteType) else if (bindPropertyType == UtilConstants.ByteType)
{ {
method = isNullableType ? getConvertByte : getByte; method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertByte : IDataReaderEntityBuilderHelpers.getByte;
} }
else if (bindPropertyType == UtilConstants.StringType && dbTypeName.EqualCase("timestamp")) else if (bindPropertyType == UtilConstants.StringType && dbTypeName.EqualCase("timestamp"))
{ {
method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType); method = isNullableType ? IDataReaderEntityBuilderHelpers.getOtherNull.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getOther.MakeGenericMethod(bindPropertyType);
} }
else if (dbTypeName.EqualCase("STRING")) else if (dbTypeName.EqualCase("STRING"))
{ {
method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType); method = isNullableType ? IDataReaderEntityBuilderHelpers.getOtherNull.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getOther.MakeGenericMethod(bindPropertyType);
} }
else if (bindPropertyType == UtilConstants.StringType && validPropertyName == "int") else if (bindPropertyType == UtilConstants.StringType && validPropertyName == "int")
{ {
method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType); method = isNullableType ? IDataReaderEntityBuilderHelpers.getOtherNull.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getOther.MakeGenericMethod(bindPropertyType);
} }
else if (bindPropertyType == UtilConstants.StringType) else if (bindPropertyType == UtilConstants.StringType)
{ {
method = getString; method = IDataReaderEntityBuilderHelpers.getString;
} }
else else
{ {
method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType); method = isNullableType ? IDataReaderEntityBuilderHelpers.getOtherNull.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getOther.MakeGenericMethod(bindPropertyType);
} }
if (method.IsVirtual) if (method.IsVirtual)
generator.Emit(OpCodes.Callvirt, method); generator.Emit(OpCodes.Callvirt, method);
@@ -445,13 +390,13 @@ namespace ThingsGateway.SqlSugar
case CSharpDataType.@int: case CSharpDataType.@int:
CheckType(bind.IntThrow, bindPropertyTypeName, validPropertyName, propertyName); CheckType(bind.IntThrow, bindPropertyTypeName, validPropertyName, propertyName);
if (bindPropertyTypeName.IsContainsIn("int", "int32")) if (bindPropertyTypeName.IsContainsIn("int", "int32"))
method = isNullableType ? getConvertInt32 : getInt32; method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertInt32 : IDataReaderEntityBuilderHelpers.getInt32;
if (bindPropertyTypeName.IsContainsIn("int64")) if (bindPropertyTypeName.IsContainsIn("int64"))
method = null; method = null;
if (bindPropertyTypeName.IsContainsIn("byte")) if (bindPropertyTypeName.IsContainsIn("byte"))
method = isNullableType ? getConvertByte : getByte; method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertByte : IDataReaderEntityBuilderHelpers.getByte;
if (bindPropertyTypeName.IsContainsIn("int16")) if (bindPropertyTypeName.IsContainsIn("int16"))
method = isNullableType ? getConvertInt16 : getInt16; method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertInt16 : IDataReaderEntityBuilderHelpers.getInt16;
if (bindPropertyTypeName == "uint32" && this.Context.CurrentConnectionConfig.DbType.IsIn(DbType.MySql, DbType.MySqlConnector)) if (bindPropertyTypeName == "uint32" && this.Context.CurrentConnectionConfig.DbType.IsIn(DbType.MySql, DbType.MySqlConnector))
method = null; method = null;
if (bindPropertyTypeName == "int16") if (bindPropertyTypeName == "int16")
@@ -459,21 +404,21 @@ namespace ThingsGateway.SqlSugar
break; break;
case CSharpDataType.@bool: case CSharpDataType.@bool:
if (bindPropertyTypeName == "bool" || bindPropertyTypeName == "boolean") if (bindPropertyTypeName == "bool" || bindPropertyTypeName == "boolean")
method = isNullableType ? getConvertBoolean : getBoolean; method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertBoolean : IDataReaderEntityBuilderHelpers.getBoolean;
break; break;
case CSharpDataType.@string: case CSharpDataType.@string:
if (this.Context.CurrentConnectionConfig.DbType != DbType.Oracle) if (this.Context.CurrentConnectionConfig.DbType != DbType.Oracle)
{ {
CheckType(bind.StringThrow, bindPropertyTypeName, validPropertyName, propertyName); CheckType(bind.StringThrow, bindPropertyTypeName, validPropertyName, propertyName);
} }
method = getString; method = IDataReaderEntityBuilderHelpers.getString;
if (bindPropertyTypeName == "guid") if (bindPropertyTypeName == "guid")
{ {
method = isNullableType ? getConvertStringGuid : getStringGuid; method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertStringGuid : IDataReaderEntityBuilderHelpers.getStringGuid;
} }
else if (bindPropertyTypeName == "xelement") else if (bindPropertyTypeName == "xelement")
{ {
method = getXelement; method = IDataReaderEntityBuilderHelpers.getXelement;
} }
else if (dbTypeName == "CHAR" && DataRecord.GetDataTypeName(ordinal) == "CHAR(36)") else if (dbTypeName == "CHAR" && DataRecord.GetDataTypeName(ordinal) == "CHAR(36)")
{ {
@@ -487,35 +432,35 @@ namespace ThingsGateway.SqlSugar
case CSharpDataType.DateTime: case CSharpDataType.DateTime:
CheckType(bind.DateThrow, bindPropertyTypeName, validPropertyName, propertyName); CheckType(bind.DateThrow, bindPropertyTypeName, validPropertyName, propertyName);
if (bindPropertyTypeName == "datetime") if (bindPropertyTypeName == "datetime")
method = isNullableType ? getConvertDateTime : getDateTime; method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertDateTime : IDataReaderEntityBuilderHelpers.getDateTime;
if (bindPropertyTypeName == "datetime" && dbTypeName.Equals("time", StringComparison.CurrentCultureIgnoreCase)) if (bindPropertyTypeName == "datetime" && dbTypeName.Equals("time", StringComparison.CurrentCultureIgnoreCase))
method = isNullableType ? getConvertTime : getTime; method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertTime : IDataReaderEntityBuilderHelpers.getTime;
if (bindPropertyTypeName == "datetimeoffset") if (bindPropertyTypeName == "datetimeoffset")
method = isNullableType ? getConvertdatetimeoffset : getdatetimeoffset; method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertdatetimeoffset : IDataReaderEntityBuilderHelpers.getdatetimeoffset;
break; break;
case CSharpDataType.@decimal: case CSharpDataType.@decimal:
CheckType(bind.DecimalThrow, bindPropertyTypeName, validPropertyName, propertyName); CheckType(bind.DecimalThrow, bindPropertyTypeName, validPropertyName, propertyName);
if (bindPropertyTypeName == "decimal") if (bindPropertyTypeName == "decimal")
method = isNullableType ? getConvertDecimal : getDecimal; method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertDecimal : IDataReaderEntityBuilderHelpers.getDecimal;
break; break;
case CSharpDataType.@float: case CSharpDataType.@float:
case CSharpDataType.@double: case CSharpDataType.@double:
CheckType(bind.DoubleThrow, bindPropertyTypeName, validPropertyName, propertyName); CheckType(bind.DoubleThrow, bindPropertyTypeName, validPropertyName, propertyName);
if (bindPropertyTypeName.IsIn("double", "single") && dbTypeName != "real") if (bindPropertyTypeName.IsIn("double", "single") && dbTypeName != "real")
method = isNullableType ? getConvertDouble : getDouble; method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertDouble : IDataReaderEntityBuilderHelpers.getDouble;
else else
method = isNullableType ? getConvertFloat : getFloat; method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertFloat : IDataReaderEntityBuilderHelpers.getFloat;
if (dbTypeName.Equals("float", StringComparison.CurrentCultureIgnoreCase) && isNullableType && bindPropertyTypeName.Equals("single", StringComparison.CurrentCultureIgnoreCase)) if (dbTypeName.Equals("float", StringComparison.CurrentCultureIgnoreCase) && isNullableType && bindPropertyTypeName.Equals("single", StringComparison.CurrentCultureIgnoreCase))
{ {
method = getConvertDoubleToFloat; method = IDataReaderEntityBuilderHelpers.getConvertDoubleToFloat;
} }
if (bindPropertyType == UtilConstants.DecType) if (bindPropertyType == UtilConstants.DecType)
{ {
method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType); method = isNullableType ? IDataReaderEntityBuilderHelpers.getOtherNull.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getOther.MakeGenericMethod(bindPropertyType);
} }
if (bindPropertyType == UtilConstants.IntType) if (bindPropertyType == UtilConstants.IntType)
{ {
method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType); method = isNullableType ? IDataReaderEntityBuilderHelpers.getOtherNull.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getOther.MakeGenericMethod(bindPropertyType);
} }
if (bindPropertyTypeName == "string") if (bindPropertyTypeName == "string")
{ {
@@ -525,45 +470,45 @@ namespace ThingsGateway.SqlSugar
case CSharpDataType.Guid: case CSharpDataType.Guid:
CheckType(bind.GuidThrow, bindPropertyTypeName, validPropertyName, propertyName); CheckType(bind.GuidThrow, bindPropertyTypeName, validPropertyName, propertyName);
if (bindPropertyTypeName == "guid") if (bindPropertyTypeName == "guid")
method = isNullableType ? getConvertGuid : getGuid; method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertGuid : IDataReaderEntityBuilderHelpers.getGuid;
break; break;
case CSharpDataType.@byte: case CSharpDataType.@byte:
if (bindPropertyTypeName == "byte") if (bindPropertyTypeName == "byte")
method = isNullableType ? getConvertByte : getByte; method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertByte : IDataReaderEntityBuilderHelpers.getByte;
break; break;
case CSharpDataType.@enum: case CSharpDataType.@enum:
method = isNullableType ? getConvertEnum_Null.MakeGenericMethod(bindPropertyType) : getEnum.MakeGenericMethod(bindPropertyType); method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertEnum_Null.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getEnum.MakeGenericMethod(bindPropertyType);
break; break;
case CSharpDataType.@short: case CSharpDataType.@short:
CheckType(bind.ShortThrow, bindPropertyTypeName, validPropertyName, propertyName); CheckType(bind.ShortThrow, bindPropertyTypeName, validPropertyName, propertyName);
if (bindPropertyTypeName == "int16" || bindPropertyTypeName == "short") if (bindPropertyTypeName == "int16" || bindPropertyTypeName == "short")
method = isNullableType ? getConvertInt16 : getInt16; method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertInt16 : IDataReaderEntityBuilderHelpers.getInt16;
break; break;
case CSharpDataType.@long: case CSharpDataType.@long:
if (bindPropertyTypeName == "int64" || bindPropertyTypeName == "long") if (bindPropertyTypeName == "int64" || bindPropertyTypeName == "long")
method = isNullableType ? getConvertInt64 : getInt64; method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertInt64 : IDataReaderEntityBuilderHelpers.getInt64;
break; break;
case CSharpDataType.DateTimeOffset: case CSharpDataType.DateTimeOffset:
method = isNullableType ? getConvertdatetimeoffset : getdatetimeoffset; method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertdatetimeoffset : IDataReaderEntityBuilderHelpers.getdatetimeoffset;
if (bindPropertyTypeName == "datetime") if (bindPropertyTypeName == "datetime")
method = isNullableType ? getConvertdatetimeoffsetDate : getdatetimeoffsetDate; method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertdatetimeoffsetDate : IDataReaderEntityBuilderHelpers.getdatetimeoffsetDate;
break; break;
case CSharpDataType.Single: case CSharpDataType.Single:
break; break;
default: default:
method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType); method = isNullableType ? IDataReaderEntityBuilderHelpers.getOtherNull.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getOther.MakeGenericMethod(bindPropertyType);
break; break;
} }
if (method == null && bindPropertyType == UtilConstants.StringType) if (method == null && bindPropertyType == UtilConstants.StringType)
{ {
method = getConvertString; method = IDataReaderEntityBuilderHelpers.getConvertString;
} }
if (bindPropertyType == UtilConstants.ObjType) if (bindPropertyType == UtilConstants.ObjType)
{ {
method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType); method = isNullableType ? IDataReaderEntityBuilderHelpers.getOtherNull.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getOther.MakeGenericMethod(bindPropertyType);
} }
if (method == null) if (method == null)
method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType); method = isNullableType ? IDataReaderEntityBuilderHelpers.getOtherNull.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getOther.MakeGenericMethod(bindPropertyType);
if (method.IsVirtual) if (method.IsVirtual)
generator.Emit(OpCodes.Callvirt, method); generator.Emit(OpCodes.Callvirt, method);

View File

@@ -0,0 +1,65 @@
using System.Data;
using System.Reflection;
namespace ThingsGateway.SqlSugar
{
internal static class IDataReaderEntityBuilderHelpers
{
/// <summary>
/// IsDBNull方法
/// </summary>
internal static readonly MethodInfo isDBNullMethod = typeof(IDataRecord).GetMethod(nameof(IDataRecord.IsDBNull), new Type[] { typeof(int) });
/// <summary>
/// GetBoolean方法
/// </summary>
internal static readonly MethodInfo getBoolean = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetBoolean), new Type[] { typeof(int) });
/// <summary>
/// GetByte方法
/// </summary>
internal static readonly MethodInfo getByte = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetByte), new Type[] { typeof(int) });
/// <summary>
/// GetDateTime方法
/// </summary>
internal static readonly MethodInfo getDateTime = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetDateTime), new Type[] { typeof(int) });
internal static readonly MethodInfo getDecimal = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetDecimal), new[] { typeof(int) });
internal static readonly MethodInfo getDouble = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetDouble), new[] { typeof(int) });
internal static readonly MethodInfo getFloat = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetFloat), new[] { typeof(int) });
internal static readonly MethodInfo getGuid = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetGuid), new[] { typeof(int) });
internal static readonly MethodInfo getInt16 = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetInt16), new[] { typeof(int) });
internal static readonly MethodInfo getInt32 = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetInt32), new[] { typeof(int) });
internal static readonly MethodInfo getInt64 = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetInt64), new[] { typeof(int) });
internal static readonly MethodInfo getString = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetString), new[] { typeof(int) });
internal static readonly MethodInfo getdatetimeoffset = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetDateTimeOffset));
internal static readonly MethodInfo getdatetimeoffsetDate = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetDateTimeOffsetDate));
internal static readonly MethodInfo getStringGuid = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetStringGuid));
internal static readonly MethodInfo getXelement = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetXelement));
internal static readonly MethodInfo getConvertStringGuid = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertStringGuid));
internal static readonly MethodInfo getEnum = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetEnum));
internal static readonly MethodInfo getConvertString = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertString));
internal static readonly MethodInfo getConvertFloat = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertFloat));
internal static readonly MethodInfo getConvertBoolean = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertBoolean));
internal static readonly MethodInfo getConvertByte = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertByte));
internal static readonly MethodInfo getConvertChar = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertChar));
internal static readonly MethodInfo getConvertDateTime = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertDateTime));
internal static readonly MethodInfo getConvertTime = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertTime));
internal static readonly MethodInfo getTime = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetTime));
internal static readonly MethodInfo getConvertDecimal = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertDecimal));
internal static readonly MethodInfo getConvertDouble = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertDouble));
internal static readonly MethodInfo getConvertDoubleToFloat = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertDoubleToFloat));
internal static readonly MethodInfo getConvertGuid = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertGuid));
internal static readonly MethodInfo getConvertInt16 = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertInt16));
internal static readonly MethodInfo getConvertInt32 = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertInt32));
internal static readonly MethodInfo getConvertInt64 = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertInt64));
internal static readonly MethodInfo getConvertEnum_Null = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertEnum_Null));
internal static readonly MethodInfo getConvertdatetimeoffset = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertdatetimeoffset));
internal static readonly MethodInfo getConvertdatetimeoffsetDate = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertdatetimeoffsetDate));
internal static readonly MethodInfo getOtherNull = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetOtherNull));
internal static readonly MethodInfo getOther = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetOther));
internal static readonly MethodInfo getJson = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetJson));
internal static readonly MethodInfo getArray = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetArray));
internal static readonly MethodInfo getEntity = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetEntity), new[] { typeof(SqlSugarProvider) });
internal static readonly MethodInfo getMyIntNull = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetMyIntNull));
internal static readonly MethodInfo getMyInt = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetMyInt));
}
}

View File

@@ -11,7 +11,7 @@ namespace ThingsGateway.SqlSugar
/// <summary> /// <summary>
/// 类模板 /// 类模板
/// </summary> /// </summary>
public static string ClassTemplate = "{using}\r\n" + public const string ClassTemplate = "{using}\r\n" +
"namespace {Namespace}\r\n" + "namespace {Namespace}\r\n" +
"{\r\n" + "{\r\n" +
"{ClassDescription}{SugarTable}\r\n" + "{ClassDescription}{SugarTable}\r\n" +
@@ -26,7 +26,7 @@ namespace ThingsGateway.SqlSugar
/// <summary> /// <summary>
/// 类描述模板 /// 类描述模板
/// </summary> /// </summary>
public static string ClassDescriptionTemplate = public const string ClassDescriptionTemplate =
ClassSpace + "///<summary>\r\n" + ClassSpace + "///<summary>\r\n" +
ClassSpace + "///{ClassDescription}" + ClassSpace + "///{ClassDescription}" +
ClassSpace + "///</summary>"; ClassSpace + "///</summary>";
@@ -34,13 +34,13 @@ namespace ThingsGateway.SqlSugar
/// <summary> /// <summary>
/// 属性模板 /// 属性模板
/// </summary> /// </summary>
public static string PropertyTemplate = PropertySpace + "{SugarColumn}\r\n" + public const string PropertyTemplate = PropertySpace + "{SugarColumn}\r\n" +
PropertySpace + "public {PropertyType} {PropertyName} {get;set;}\r\n"; PropertySpace + "public {PropertyType} {PropertyName} {get;set;}\r\n";
/// <summary> /// <summary>
/// 属性描述模板 /// 属性描述模板
/// </summary> /// </summary>
public static string PropertyDescriptionTemplate = public const string PropertyDescriptionTemplate =
PropertySpace + "/// <summary>\r\n" + PropertySpace + "/// <summary>\r\n" +
PropertySpace + "/// Desc:{PropertyDescription}\r\n" + PropertySpace + "/// Desc:{PropertyDescription}\r\n" +
PropertySpace + "/// Default:{DefaultValue}\r\n" + PropertySpace + "/// Default:{DefaultValue}\r\n" +
@@ -50,12 +50,12 @@ namespace ThingsGateway.SqlSugar
/// <summary> /// <summary>
/// 构造函数模板 /// 构造函数模板
/// </summary> /// </summary>
public static string ConstructorTemplate = PropertySpace + " this.{PropertyName} ={DefaultValue};\r\n"; public const string ConstructorTemplate = PropertySpace + " this.{PropertyName} ={DefaultValue};\r\n";
/// <summary> /// <summary>
/// 命名空间模板 /// 命名空间模板
/// </summary> /// </summary>
public static string UsingTemplate = "using System;\r\n" + public const string UsingTemplate = "using System;\r\n" +
"using System.Linq;\r\n" + "using System.Linq;\r\n" +
"using System.Text;" + "\r\n"; "using System.Text;" + "\r\n";
#endregion #endregion

View File

@@ -19,7 +19,7 @@ namespace ThingsGateway.SqlSugar
/// <summary> /// <summary>
/// 默认Razor类模板 /// 默认Razor类模板
/// </summary> /// </summary>
public static string DefaultRazorClassTemplate = public const string DefaultRazorClassTemplate =
@"using System; @"using System;
using System.Linq; using System.Linq;
using System.Text; using System.Text;

View File

@@ -8,7 +8,7 @@ namespace ThingsGateway.SqlSugar
SqlSugarProvider Context { get; set; } SqlSugarProvider Context { get; set; }
internal ISqlBuilder Builder; internal ISqlBuilder Builder;
List<SugarParameter> Parameters; List<SugarParameter> Parameters;
IEnumerable<StorageableInfo<T>> allDatas; StorageableInfo<T>[] allDatas;
List<T> dbDataList = new List<T>(); List<T> dbDataList = new List<T>();
List<KeyValuePair<StorageType, Func<StorageableInfo<T>, bool>, string>> whereFuncs = new List<KeyValuePair<StorageType, Func<StorageableInfo<T>, bool>, string>>(); List<KeyValuePair<StorageType, Func<StorageableInfo<T>, bool>, string>> whereFuncs = new List<KeyValuePair<StorageType, Func<StorageableInfo<T>, bool>, string>>();
Expression<Func<T, object>> whereExpression; Expression<Func<T, object>> whereExpression;
@@ -24,7 +24,7 @@ namespace ThingsGateway.SqlSugar
this.allDatas = datas.Select(it => new StorageableInfo<T>() this.allDatas = datas.Select(it => new StorageableInfo<T>()
{ {
Item = it Item = it
}); }).ToArray();
} }
Expression<Func<T, bool>> queryableWhereExp; Expression<Func<T, bool>> queryableWhereExp;
@@ -209,7 +209,7 @@ namespace ThingsGateway.SqlSugar
{ {
return this.Saveable().ToStorage(); return this.Saveable().ToStorage();
} }
if (!this.allDatas.Any()) if (this.allDatas.Length == 0)
return new StorageableResult<T>() return new StorageableResult<T>()
{ {
AsDeleteable = this.Context.Deleteable<T>().AS(asname).Where(it => false), AsDeleteable = this.Context.Deleteable<T>().AS(asname).Where(it => false),
@@ -298,7 +298,7 @@ namespace ThingsGateway.SqlSugar
{ {
return this.Saveable().GetStorageableResult(); return this.Saveable().GetStorageableResult();
} }
if (!this.allDatas.Any()) if (this.allDatas.Length == 0)
return new StorageableResult<T>() return new StorageableResult<T>()
{ {
//AsDeleteable = this.Context.Deleteable<T>().AS(asname).Where(it => false), //AsDeleteable = this.Context.Deleteable<T>().AS(asname).Where(it => false),
@@ -380,7 +380,7 @@ namespace ThingsGateway.SqlSugar
{ {
return await Saveable().ToStorageAsync().ConfigureAwait(false); return await Saveable().ToStorageAsync().ConfigureAwait(false);
} }
if (!this.allDatas.Any()) if (this.allDatas.Length == 0)
return new StorageableResult<T>() return new StorageableResult<T>()
{ {
AsDeleteable = this.Context.Deleteable<T>().AS(asname).Where(it => false), AsDeleteable = this.Context.Deleteable<T>().AS(asname).Where(it => false),

View File

@@ -6,7 +6,7 @@ namespace ThingsGateway.SqlSugar
{ {
internal SqlSugarProvider Context { get; set; } internal SqlSugarProvider Context { get; set; }
internal MethodInfo MethodInfo { get; set; } internal MethodInfo MethodInfo { get; set; }
internal object objectValue { get; set; } internal object ObjValue { get; set; }
public int ExecuteCommand() public int ExecuteCommand()
{ {
if (Context == null) return 0; if (Context == null) return 0;
@@ -20,16 +20,14 @@ namespace ThingsGateway.SqlSugar
{ {
get get
{ {
var type = "AsInsertable"; return GetAs(nameof(AsInsertable));
return GetAs(type);
} }
} }
public StorageableAsMethodInfo AsUpdateable public StorageableAsMethodInfo AsUpdateable
{ {
get get
{ {
var type = "AsUpdateable"; return GetAs(nameof(AsUpdateable));
return GetAs(type);
} }
} }
@@ -48,9 +46,9 @@ namespace ThingsGateway.SqlSugar
private MethodInfo GetSaveMethod(ref object callValue) private MethodInfo GetSaveMethod(ref object callValue)
{ {
if (objectValue == null) if (ObjValue == null)
return null; return null;
callValue = MethodInfo.Invoke(Context, new object[] { objectValue }); callValue = MethodInfo.Invoke(Context, new object[] { ObjValue });
return callValue.GetType().GetMyMethod(nameof(ExecuteCommand), 0); return callValue.GetType().GetMyMethod(nameof(ExecuteCommand), 0);
} }

View File

@@ -1113,7 +1113,7 @@ namespace ThingsGateway.SqlSugar
{ {
Context = this.Context, Context = this.Context,
MethodInfo = method, MethodInfo = method,
objectValue = newList ObjValue = newList
}; };
return result; return result;
} }
@@ -1126,7 +1126,7 @@ namespace ThingsGateway.SqlSugar
{ {
Context = this.Context, Context = this.Context,
MethodInfo = method, MethodInfo = method,
objectValue = singleEntityObjectOrList ObjValue = singleEntityObjectOrList
}; };
return result; return result;
} }

View File

@@ -2,7 +2,7 @@
{ {
public sealed class SnowFlakeSingle public sealed class SnowFlakeSingle
{ {
private static object LockObject = new object(); private static readonly object LockObject = new object();
private static DistributedSystem.Snowflake.IdWorker worker; private static DistributedSystem.Snowflake.IdWorker worker;
public static int WorkId = 1; public static int WorkId = 1;
public static int DatacenterId = 1; public static int DatacenterId = 1;

View File

@@ -99,10 +99,7 @@ namespace ThingsGateway.SqlSugar
public void RemoveAllCache() public void RemoveAllCache()
{ {
foreach (var key in GetAllKey()) this.InstanceCache.Clear();
{
this.Remove(key);
}
} }
public IEnumerable<string> GetAllKey() public IEnumerable<string> GetAllKey()

View File

@@ -28,11 +28,12 @@ namespace ThingsGateway.SqlSugar
this.Context.Close(); this.Context.Close();
} }
} }
Task<string> CreateTempAsync<T>(Dictionary<string, (Type, List<DataInfos>)> list) where T : class, new() public Task<string> CreateTempAsync<T>(Dictionary<string, (Type, List<DataInfos>)> list) where T : class, new()
{ {
IsUpdate = true; IsUpdate = true;
return Task.FromResult(string.Empty); return Task.FromResult(string.Empty);
} }
public Task CreateTempAsync<T>(DataTable dt) where T : class, new() public Task CreateTempAsync<T>(DataTable dt) where T : class, new()
{ {
@@ -175,7 +176,7 @@ namespace ThingsGateway.SqlSugar
else else
{ {
var count = list.FirstOrDefault().Value.Item2?.Count; var count = list.FirstOrDefault().Value.Item2?.Count;
if(count==1) if (count == 1)
{ {
var row = list.GetRows(0).ToDictionary(a => a.ColumnName, a => a.Value); var row = list.GetRows(0).ToDictionary(a => a.ColumnName, a => a.Value);
cmd.CommandText = this.Context.InsertableT(row).AS(tableName).ToSqlString().Replace(";SELECT LAST_INSERT_ROWID();", ""); cmd.CommandText = this.Context.InsertableT(row).AS(tableName).ToSqlString().Replace(";SELECT LAST_INSERT_ROWID();", "");

View File

@@ -1,9 +1,9 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<PluginVersion>10.11.93</PluginVersion> <PluginVersion>10.11.94</PluginVersion>
<ProPluginVersion>10.11.93</ProPluginVersion> <ProPluginVersion>10.11.94</ProPluginVersion>
<DefaultVersion>10.11.93</DefaultVersion> <DefaultVersion>10.11.94</DefaultVersion>
<AuthenticationVersion>10.11.6</AuthenticationVersion> <AuthenticationVersion>10.11.6</AuthenticationVersion>
<SourceGeneratorVersion>10.11.6</SourceGeneratorVersion> <SourceGeneratorVersion>10.11.6</SourceGeneratorVersion>
<NET8Version>8.0.20</NET8Version> <NET8Version>8.0.20</NET8Version>
@@ -12,7 +12,7 @@
<IsTrimmable>false</IsTrimmable> <IsTrimmable>false</IsTrimmable>
<ManagementProPluginVersion>10.11.87</ManagementProPluginVersion> <ManagementProPluginVersion>10.11.87</ManagementProPluginVersion>
<ManagementPluginVersion>10.11.87</ManagementPluginVersion> <ManagementPluginVersion>10.11.87</ManagementPluginVersion>
<TSVersion>4.0.0-beta.96</TSVersion> <TSVersion>4.0.0-beta.100</TSVersion>
</PropertyGroup> </PropertyGroup>

View File

@@ -113,7 +113,7 @@ public partial class ManagementTask : AsyncDisposableObject
.ConfigurePlugins(a => .ConfigurePlugins(a =>
{ {
a.UseTcpSessionCheckClear(); a.UseTcpSessionCheckClear();
a.UseDmtpRpc().ConfigureDefaultSerializationSelector(b => a.UseDmtpRpc(a => a.ConfigureDefaultSerializationSelector(b =>
{ {
b.UseSystemTextJson(json => b.UseSystemTextJson(json =>
{ {
@@ -123,7 +123,7 @@ public partial class ManagementTask : AsyncDisposableObject
json.Converters.Add(new JObjectSystemTextJsonConverter()); json.Converters.Add(new JObjectSystemTextJsonConverter());
json.Converters.Add(new JArraySystemTextJsonConverter()); json.Converters.Add(new JArraySystemTextJsonConverter());
}); });
}); }));
a.UseDmtpFileTransfer();//必须添加文件传输插件 a.UseDmtpFileTransfer();//必须添加文件传输插件
@@ -176,7 +176,7 @@ public partial class ManagementTask : AsyncDisposableObject
.ConfigurePlugins(a => .ConfigurePlugins(a =>
{ {
a.UseTcpSessionCheckClear(); a.UseTcpSessionCheckClear();
a.UseDmtpRpc().ConfigureDefaultSerializationSelector(b => a.UseDmtpRpc(a => a.ConfigureDefaultSerializationSelector(b =>
{ {
b.UseSystemTextJson(json => b.UseSystemTextJson(json =>
{ {
@@ -186,7 +186,7 @@ public partial class ManagementTask : AsyncDisposableObject
json.Converters.Add(new JObjectSystemTextJsonConverter()); json.Converters.Add(new JObjectSystemTextJsonConverter());
json.Converters.Add(new JArraySystemTextJsonConverter()); json.Converters.Add(new JArraySystemTextJsonConverter());
}); });
}); }));
a.UseDmtpFileTransfer();//必须添加文件传输插件 a.UseDmtpFileTransfer();//必须添加文件传输插件

View File

@@ -346,7 +346,7 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable
{ {
a.UseTcpSessionCheckClear(); a.UseTcpSessionCheckClear();
a.UseDmtpRpc().ConfigureDefaultSerializationSelector(b => a.UseDmtpRpc(a => a.ConfigureDefaultSerializationSelector(b =>
{ {
b.UseSystemTextJson(json => b.UseSystemTextJson(json =>
{ {
@@ -356,7 +356,7 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable
json.Converters.Add(new JObjectSystemTextJsonConverter()); json.Converters.Add(new JObjectSystemTextJsonConverter());
json.Converters.Add(new JArraySystemTextJsonConverter()); json.Converters.Add(new JArraySystemTextJsonConverter());
}); });
}); }));
a.UseDmtpHeartbeat()//使用Dmtp心跳 a.UseDmtpHeartbeat()//使用Dmtp心跳
.SetTick(TimeSpan.FromMilliseconds(redundancy.HeartbeatInterval)) .SetTick(TimeSpan.FromMilliseconds(redundancy.HeartbeatInterval))
.SetMaxFailCount(redundancy.MaxErrorCount); .SetMaxFailCount(redundancy.MaxErrorCount);
@@ -390,7 +390,7 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable
.ConfigurePlugins(a => .ConfigurePlugins(a =>
{ {
a.UseTcpSessionCheckClear(); a.UseTcpSessionCheckClear();
a.UseDmtpRpc().ConfigureDefaultSerializationSelector(b => a.UseDmtpRpc(a => a.ConfigureDefaultSerializationSelector(b =>
{ {
b.UseSystemTextJson(json => b.UseSystemTextJson(json =>
{ {
@@ -400,7 +400,7 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable
json.Converters.Add(new JObjectSystemTextJsonConverter()); json.Converters.Add(new JObjectSystemTextJsonConverter());
json.Converters.Add(new JArraySystemTextJsonConverter()); json.Converters.Add(new JArraySystemTextJsonConverter());
}); });
}); }));
a.UseDmtpHeartbeat()//使用Dmtp心跳 a.UseDmtpHeartbeat()//使用Dmtp心跳
.SetTick(TimeSpan.FromMilliseconds(redundancy.HeartbeatInterval)) .SetTick(TimeSpan.FromMilliseconds(redundancy.HeartbeatInterval))
.SetMaxFailCount(redundancy.MaxErrorCount); .SetMaxFailCount(redundancy.MaxErrorCount);

View File

@@ -17,13 +17,13 @@
<AssemblyName>ThingsGateway.Plugin.Kafka</AssemblyName> <AssemblyName>ThingsGateway.Plugin.Kafka</AssemblyName>
<PackageId>$(MSBuildProjectName)</PackageId> <PackageId>$(MSBuildProjectName)</PackageId>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\PluginPro\ThingsGateway.Management.Razor\ThingsGateway.Management.Razor.csproj" > <ProjectReference Include="..\..\PluginPro\ThingsGateway.Management.Razor\ThingsGateway.Management.Razor.csproj">
<PrivateAssets>contentFiles;compile;build;buildMultitargeting;buildTransitive;analyzers;</PrivateAssets> <PrivateAssets>contentFiles;compile;build;buildMultitargeting;buildTransitive;analyzers;</PrivateAssets>
</ProjectReference> </ProjectReference>
<PackageReference Include="Confluent.Kafka" Version="2.11.1" GeneratePathProperty="true"> <PackageReference Include="Confluent.Kafka" Version="2.12.0" GeneratePathProperty="true">
<PrivateAssets>contentFiles;compile;build;buildMultitargeting;buildTransitive;analyzers;</PrivateAssets> <PrivateAssets>contentFiles;compile;build;buildMultitargeting;buildTransitive;analyzers;</PrivateAssets>
</PackageReference> </PackageReference>
</ItemGroup> </ItemGroup>
@@ -34,6 +34,6 @@
<CopyToOutputDirectory>Never</CopyToOutputDirectory> <CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource> </EmbeddedResource>
</ItemGroup> </ItemGroup>
</Project> </Project>