mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-11-08 10:24:55 +08:00
Update core
This commit is contained in:
@@ -10,7 +10,7 @@ namespace SqlSugar
|
||||
public class FastBuilder
|
||||
{
|
||||
public SqlSugarProvider Context { get; set; }
|
||||
|
||||
public virtual string CharacterSet { get; set; }
|
||||
public virtual string UpdateSql { get; set; } = @"UPDATE TM
|
||||
SET {0}
|
||||
FROM {1} TM
|
||||
|
||||
@@ -14,7 +14,9 @@ namespace SqlSugar
|
||||
switch (this.context.CurrentConnectionConfig.DbType)
|
||||
{
|
||||
case DbType.MySql:
|
||||
return new MySqlFastBuilder();
|
||||
var result= new MySqlFastBuilder();
|
||||
result.CharacterSet = this.CharacterSet;
|
||||
return result;
|
||||
case DbType.SqlServer:
|
||||
return new SqlServerFastBuilder();
|
||||
case DbType.Sqlite:
|
||||
@@ -24,7 +26,9 @@ namespace SqlSugar
|
||||
case DbType.PostgreSQL:
|
||||
return new PostgreSQLFastBuilder(this.entityInfo);
|
||||
case DbType.MySqlConnector:
|
||||
return InstanceFactory.CreateInstance<IFastBuilder>("SqlSugar.MySqlConnector.MySqlFastBuilder");
|
||||
var resultConnector = InstanceFactory.CreateInstance<IFastBuilder>("SqlSugar.MySqlConnector.MySqlFastBuilder");
|
||||
resultConnector.CharacterSet = this.CharacterSet;
|
||||
return resultConnector;
|
||||
case DbType.Dm:
|
||||
break;
|
||||
case DbType.Kdbndp:
|
||||
@@ -74,13 +78,17 @@ namespace SqlSugar
|
||||
name = column.PropertyName;
|
||||
}
|
||||
var value = ValueConverter(column, PropertyCallAdapterProvider<T>.GetInstance(column.PropertyName).InvokeGet(item));
|
||||
if (isMySql&& column.UnderType==UtilConstants.BoolType)
|
||||
if (isMySql && column.UnderType == UtilConstants.BoolType)
|
||||
{
|
||||
if (value.ObjToBool() == false)
|
||||
{
|
||||
value = DBNull.Value;
|
||||
}
|
||||
}
|
||||
else if (column.UnderType == UtilConstants.DateTimeOffsetType&& value!=null)
|
||||
{
|
||||
value = UtilMethods.ConvertFromDateTimeOffset((DateTimeOffset)value);
|
||||
}
|
||||
dr[name] = value;
|
||||
}
|
||||
dt.Rows.Add(dr);
|
||||
|
||||
@@ -12,6 +12,12 @@ namespace SqlSugar
|
||||
private int Size { get; set; }
|
||||
private string CacheKey { get; set; }
|
||||
private string CacheKeyLike { get; set; }
|
||||
private string CharacterSet { get; set; }
|
||||
public IFastest<T> SetCharacterSet(string CharacterSet)
|
||||
{
|
||||
this.CharacterSet = CharacterSet;
|
||||
return this;
|
||||
}
|
||||
public IFastest<T> RemoveDataCache()
|
||||
{
|
||||
CacheKey = typeof(T).FullName;
|
||||
|
||||
@@ -483,11 +483,12 @@ namespace SqlSugar
|
||||
name = this.AsTables.First(it => it.Key == name).Value;
|
||||
}
|
||||
}
|
||||
var isSubQuery = name!=null&& name.StartsWith("(") && name.EndsWith(")");
|
||||
return string.Format(
|
||||
this.JoinTemplate,
|
||||
joinInfo.JoinType.ToString() + UtilConstants.Space,
|
||||
Builder.GetTranslationTableName(name) + UtilConstants.Space,
|
||||
joinInfo.ShortName + UtilConstants.Space + (TableWithString == SqlWith.Null ? " " : TableWithString),
|
||||
joinInfo.ShortName + UtilConstants.Space + (TableWithString == SqlWith.Null|| isSubQuery ? " " : TableWithString),
|
||||
joinInfo.JoinWhere);
|
||||
}
|
||||
public virtual void Clear()
|
||||
@@ -509,6 +510,11 @@ namespace SqlSugar
|
||||
}
|
||||
public string GetSqlQuerySql(string result)
|
||||
{
|
||||
if (GetTableNameString == " (-- No table ) t ")
|
||||
{
|
||||
result = "-- No table ";
|
||||
return result;
|
||||
}
|
||||
if (this.IsSqlQuery&&this.OldSql.HasValue() && (Skip == null && Take == null) && (this.WhereInfos == null || this.WhereInfos.Count == 0))
|
||||
{
|
||||
return this.OldSql;
|
||||
|
||||
@@ -336,7 +336,7 @@ namespace SqlSugar
|
||||
public virtual string AggregateDistinctCount(MethodCallExpressionModel model)
|
||||
{
|
||||
var parameter = model.Args[0];
|
||||
return string.Format("COUNT(DISTINCT{0})", parameter.MemberName);
|
||||
return string.Format("COUNT(DISTINCT {0} )", parameter.MemberName);
|
||||
}
|
||||
|
||||
public virtual string MappingColumn(MethodCallExpressionModel model)
|
||||
|
||||
@@ -986,6 +986,10 @@ namespace SqlSugar
|
||||
{
|
||||
return $"CONVERT(varchar(100),convert(datetime,{value}), 23)";
|
||||
}
|
||||
else if (formatString == "yyyy-MM" && IsSqlServer())
|
||||
{
|
||||
return $"CONVERT(varchar(7),convert(datetime,{value}), 23)";
|
||||
}
|
||||
else if (formatString == "yyyy-MM-dd HH:mm:ss" && IsSqlServer())
|
||||
{
|
||||
return $"CONVERT(varchar(100),convert(datetime,{value}), 120)";
|
||||
|
||||
@@ -63,10 +63,10 @@ namespace SqlSugar
|
||||
}
|
||||
}
|
||||
result = queryBuilder.GetSelectByItems(selectItems);
|
||||
if (_context.CurrentConnectionConfig.DbType == DbType.PostgreSQL)
|
||||
{
|
||||
result = result.ToLower();
|
||||
}
|
||||
//if (_context.CurrentConnectionConfig.DbType == DbType.PostgreSQL)
|
||||
//{
|
||||
// result = result.ToLower();
|
||||
//}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ namespace SqlSugar
|
||||
public interface IFastBuilder
|
||||
{
|
||||
SqlSugarProvider Context { get; set; }
|
||||
string CharacterSet { get; set; }
|
||||
Task<int> UpdateByTempAsync(string tableName,string tempName,string [] updateColumns,string[] whereColumns);
|
||||
Task<int> ExecuteBulkCopyAsync(DataTable dt);
|
||||
Task CreateTempAsync<T>(DataTable dt) where T : class, new();
|
||||
|
||||
@@ -12,6 +12,7 @@ namespace SqlSugar
|
||||
IFastest<T> RemoveDataCache(string cacheKey);
|
||||
IFastest<T> AS(string tableName);
|
||||
IFastest<T> PageSize(int Size);
|
||||
IFastest<T> SetCharacterSet(string CharacterSet);
|
||||
int BulkCopy(List<T> datas);
|
||||
Task<int> BulkCopyAsync(List<T> datas);
|
||||
int BulkCopy(string tableName,DataTable dataTable);
|
||||
|
||||
@@ -438,7 +438,8 @@ namespace SqlSugar
|
||||
{
|
||||
string template = "ALTER table {0} CHANGE COLUMN {1} {1} {3} default {2}";
|
||||
var dbColumnInfo = this.Context.DbMaintenance.GetColumnInfosByTableName(tableName).First(it => it.DbColumnName.Equals(columnName, StringComparison.CurrentCultureIgnoreCase));
|
||||
string sql = string.Format(template, tableName, columnName, defaultValue, dbColumnInfo.DataType);
|
||||
var value = Regex.Match(defaultValue, @"\(\d\)$").Value;
|
||||
string sql = string.Format(template, tableName, columnName, defaultValue, dbColumnInfo.DataType+ value);
|
||||
this.Context.Ado.ExecuteCommand(sql);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -44,6 +44,10 @@ namespace SqlSugar
|
||||
TableName = dt.TableName,
|
||||
Local = true,
|
||||
};
|
||||
if (this.CharacterSet.HasValue())
|
||||
{
|
||||
bulk.CharacterSet = this.CharacterSet;
|
||||
}
|
||||
bulk.Columns.AddRange(dt.Columns.Cast<DataColumn>().Select(colum =>new MySqlBuilder().GetTranslationColumnName(colum.ColumnName)).Distinct().ToArray());
|
||||
result= await bulk.LoadAsync();
|
||||
//执行成功才删除文件
|
||||
|
||||
@@ -81,7 +81,7 @@ namespace SqlSugar
|
||||
.MappingTables
|
||||
.FirstOrDefault(it => it.EntityName.Equals(name, StringComparison.CurrentCultureIgnoreCase));
|
||||
name = (mappingInfo == null ? name : mappingInfo.DbTableName);
|
||||
if (name.Contains(".")&& !name.Contains("("))
|
||||
if (name.Contains(".")&& !name.Contains("(")&&!name.Contains("\".\""))
|
||||
{
|
||||
return string.Join(".", name.ToLower(isAutoToLower).Split('.').Select(it => SqlTranslationLeft + it + SqlTranslationRight));
|
||||
}
|
||||
|
||||
@@ -484,6 +484,22 @@ namespace SqlSugar
|
||||
{
|
||||
return UtilMethods.GetDateTimeOffsetByDateTime(Convert.ToDateTime(item.FieldValue));
|
||||
}
|
||||
else if (item.CSharpTypeName.EqualCase(UtilConstants.GuidType.Name))
|
||||
{
|
||||
return Guid.Parse(item.FieldValue);
|
||||
}
|
||||
else if (item.CSharpTypeName == "int")
|
||||
{
|
||||
return Convert.ToInt32(item.FieldValue);
|
||||
}
|
||||
else if (item.CSharpTypeName == "long")
|
||||
{
|
||||
return Convert.ToInt64(item.FieldValue);
|
||||
}
|
||||
else if (item.CSharpTypeName == "short")
|
||||
{
|
||||
return Convert.ToInt16(item.FieldValue);
|
||||
}
|
||||
else
|
||||
{
|
||||
return item.FieldValue;
|
||||
|
||||
Reference in New Issue
Block a user