From 5f01326f1050154073c8e72f643a61c0594f07e4 Mon Sep 17 00:00:00 2001
From: sunkaixuan <610262374@qq.com>
Date: Sat, 26 Feb 2022 22:48:06 +0800
Subject: [PATCH] Update Core
---
.../CodeFirstProvider/CodeFirstProvider.cs | 9 +++-
.../EntityMaintenance/EntityMaintenance.cs | 21 +++++++--
.../InsertableProvider/InsertableProvider.cs | 44 ++++++++++++++++++-
.../SqlBuilderProvider/InsertBuilder.cs | 1 +
.../SugarProvider/SqlSugarAccessory.cs | 9 ++--
.../SqlSugar/Entities/ConnMoreSettings.cs | 3 +-
.../SqlSugar/Infrastructure/ContextMethods.cs | 14 +++++-
.../Infrastructure/InstanceFactory.cs | 36 +++++++++------
.../MySql/DbMaintenance/MySqlDbMaintenance.cs | 4 ++
.../DbMaintenance/PostgreSQLDbMaintenance.cs | 12 +++++
10 files changed, 126 insertions(+), 27 deletions(-)
diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs
index bbdeba555..ea3c6f3d3 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs
@@ -400,7 +400,14 @@ namespace SqlSugar
{
return false;
}
- return properyTypeName != dataType;
+ if (properyTypeName == null || dataType == null)
+ {
+ return properyTypeName != dataType;
+ }
+ else
+ {
+ return properyTypeName.ToLower() != dataType.ToLower();
+ }
}
private static string GetType(string name)
{
diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/EntityMaintenance/EntityMaintenance.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/EntityMaintenance/EntityMaintenance.cs
index d89986f36..96cf92b1d 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/EntityMaintenance/EntityMaintenance.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/EntityMaintenance/EntityMaintenance.cs
@@ -170,7 +170,15 @@ namespace SqlSugar
/// the code annotation for the database table
public string GetTableAnnotation(Type entityType)
{
- return GetXElementNodeValue(entityType, $"T:{entityType.FullName}");
+ var result= GetXElementNodeValue(entityType, $"T:{entityType.FullName}");
+ if (string.IsNullOrEmpty(result))
+ {
+ return null;
+ }
+ else
+ {
+ return result;
+ }
}
///
/// Gets the code annotation for the field
@@ -180,7 +188,15 @@ namespace SqlSugar
/// the code annotation for the field
public string GetPropertyAnnotation(Type entityType, string dbColumnName)
{
- return GetXElementNodeValue(entityType, $"P:{entityType.FullName}.{dbColumnName}");
+ var result= GetXElementNodeValue(entityType, $"P:{entityType.FullName}.{dbColumnName}");
+ if (string.IsNullOrEmpty(result))
+ {
+ return null;
+ }
+ else
+ {
+ return result;
+ }
}
#region Primary key
@@ -269,6 +285,5 @@ namespace SqlSugar
}
}
#endregion
-
}
}
diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs
index b5fb44f37..2547d4300 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs
@@ -69,7 +69,27 @@ namespace SqlSugar
return 0;
}
string sql = _ExecuteReturnIdentity();
- var result = Ado.GetInt(sql, InsertBuilder.Parameters == null ? null : InsertBuilder.Parameters.ToArray());
+ var result = 0;
+ if (InsertBuilder.IsOleDb)
+ {
+ var isAuto = false;
+ if (this.Context.CurrentConnectionConfig.IsAutoCloseConnection)
+ {
+ isAuto = true;
+ this.Context.CurrentConnectionConfig.IsAutoCloseConnection = false;
+ }
+ result = Ado.GetInt(sql.Split(';').First(), InsertBuilder.Parameters == null ? null : InsertBuilder.Parameters.ToArray());
+ result = Ado.GetInt(sql.Split(';').Last(), InsertBuilder.Parameters == null ? null : InsertBuilder.Parameters.ToArray());
+ if (isAuto)
+ {
+ this.Ado.Close();
+ this.Context.CurrentConnectionConfig.IsAutoCloseConnection = isAuto;
+ }
+ }
+ else
+ {
+ result = Ado.GetInt(sql, InsertBuilder.Parameters == null ? null : InsertBuilder.Parameters.ToArray());
+ }
After(sql, result);
return result;
}
@@ -81,7 +101,27 @@ namespace SqlSugar
return 0;
}
string sql = _ExecuteReturnBigIdentity();
- var result = Convert.ToInt64(Ado.GetScalar(sql, InsertBuilder.Parameters == null ? null : InsertBuilder.Parameters.ToArray()));
+ long result = 0;
+ if (InsertBuilder.IsOleDb)
+ {
+ var isAuto = false;
+ if (this.Context.CurrentConnectionConfig.IsAutoCloseConnection)
+ {
+ isAuto = true;
+ this.Context.CurrentConnectionConfig.IsAutoCloseConnection = false;
+ }
+ result = Convert.ToInt64(Ado.GetScalar(sql.Split(';').First(), InsertBuilder.Parameters == null ? null : InsertBuilder.Parameters.ToArray()));
+ result = Convert.ToInt64(Ado.GetScalar(sql.Split(';').Last(), InsertBuilder.Parameters == null ? null : InsertBuilder.Parameters.ToArray()));
+ if (isAuto)
+ {
+ this.Ado.Close();
+ this.Context.CurrentConnectionConfig.IsAutoCloseConnection = isAuto;
+ }
+ }
+ else
+ {
+ result= Convert.ToInt64(Ado.GetScalar(sql, InsertBuilder.Parameters == null ? null : InsertBuilder.Parameters.ToArray()));
+ }
After(sql, result);
return result;
}
diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/SqlBuilderProvider/InsertBuilder.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/SqlBuilderProvider/InsertBuilder.cs
index a5fb8332a..17e4027f8 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/SqlBuilderProvider/InsertBuilder.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/SqlBuilderProvider/InsertBuilder.cs
@@ -30,6 +30,7 @@ namespace SqlSugar
public EntityInfo EntityInfo { get; set; }
public Dictionary OracleSeqInfoList { get; set; }
public bool IsBlukCopy { get; set; }
+ public virtual bool IsOleDb { get; set; }
#endregion
#region SqlTemplate
diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/SugarProvider/SqlSugarAccessory.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/SugarProvider/SqlSugarAccessory.cs
index 73466e287..e78dd9351 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/SugarProvider/SqlSugarAccessory.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/SugarProvider/SqlSugarAccessory.cs
@@ -382,14 +382,15 @@ namespace SqlSugar
DependencyManagement.TryOscar();
break;
case DbType.MySqlConnector:
- InstanceFactory.CustomTypeName = SugarCompatible.IsFramework?"SqlSugar.MySqlConnector": "SqlSugar.MySqlConnectorCore";
+ InstanceFactory.CustomDllName = SugarCompatible.IsFramework?"SqlSugar.MySqlConnector": "SqlSugar.MySqlConnectorCore";
break;
case DbType.Access:
- InstanceFactory.CustomTypeName = SugarCompatible.IsFramework?"SqlSugar.Access": "SqlSugar.AccessCore";
+ InstanceFactory.CustomDllName = SugarCompatible.IsFramework?"SqlSugar.Access": "SqlSugar.AccessCore";
break;
case DbType.Custom:
- Check.Exception(config?.MoreSettings?.CustomNugetDllName == null,ErrorMessage.GetThrowMessage("if DbType is Custmon , ConnectionConfig.MoreSettings.CustomNugetDbName is not null", "DbType是Custom ,而需要设置外部数据库支持dll名称。示例: ConnectionConfig.MoreSettings.CustomNugetDllName=\"SqlSugar.DB2\" , 设置完后我们需要引用SqlSugar.DB2.dll "));
- InstanceFactory.CustomTypeName = config.MoreSettings.CustomNugetDllName;
+ Check.Exception(InstanceFactory.CustomDbName==null , "DbType.Custom: InstanceFactory.CustomDbName is not null ");
+ Check.Exception(InstanceFactory.CustomNamespace == null, "DbType.Custom: InstanceFactory.CustomNamespace is not null ");
+ Check.Exception(InstanceFactory.CustomDllName == null, "DbType.Custom: InstanceFactory.CustomDllName is not null ");
break;
default:
throw new Exception("ConnectionConfig.DbType is null");
diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Entities/ConnMoreSettings.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Entities/ConnMoreSettings.cs
index bdab95bf4..2ab3dafb7 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Entities/ConnMoreSettings.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Entities/ConnMoreSettings.cs
@@ -13,7 +13,6 @@ namespace SqlSugar
public bool DisableNvarchar { get; set; }
public bool PgSqlIsAutoToLower = true;
public int DefaultCacheDurationInSeconds { get; set; }
- public bool? TableEnumIsString { get; set; }
- public string CustomNugetDllName { get; set; }
+ public bool? TableEnumIsString { get; set; }
}
}
diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Infrastructure/ContextMethods.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Infrastructure/ContextMethods.cs
index 17bbbe621..e84935a46 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Infrastructure/ContextMethods.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Infrastructure/ContextMethods.cs
@@ -726,12 +726,22 @@ namespace SqlSugar
}
else
{
- IConditionalModel conditionalModel = new ConditionalModel()
+ var typeValue = item["ConditionalType"].Value