Db.Fastest mysql set characterset

This commit is contained in:
sunkaixuan 2022-03-01 18:05:38 +08:00
parent 24a7656fcd
commit c119b4bb5b
6 changed files with 18 additions and 3 deletions

View File

@ -10,7 +10,7 @@ namespace SqlSugar
public class FastBuilder public class FastBuilder
{ {
public SqlSugarProvider Context { get; set; } public SqlSugarProvider Context { get; set; }
public virtual string CharacterSet { get; set; }
public virtual string UpdateSql { get; set; } = @"UPDATE TM public virtual string UpdateSql { get; set; } = @"UPDATE TM
SET {0} SET {0}
FROM {1} TM FROM {1} TM

View File

@ -14,7 +14,9 @@ namespace SqlSugar
switch (this.context.CurrentConnectionConfig.DbType) switch (this.context.CurrentConnectionConfig.DbType)
{ {
case DbType.MySql: case DbType.MySql:
return new MySqlFastBuilder(); var result= new MySqlFastBuilder();
result.CharacterSet = this.CharacterSet;
return result;
case DbType.SqlServer: case DbType.SqlServer:
return new SqlServerFastBuilder(); return new SqlServerFastBuilder();
case DbType.Sqlite: case DbType.Sqlite:
@ -24,7 +26,9 @@ namespace SqlSugar
case DbType.PostgreSQL: case DbType.PostgreSQL:
return new PostgreSQLFastBuilder(this.entityInfo); return new PostgreSQLFastBuilder(this.entityInfo);
case DbType.MySqlConnector: 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: case DbType.Dm:
break; break;
case DbType.Kdbndp: case DbType.Kdbndp:

View File

@ -12,6 +12,11 @@ namespace SqlSugar
private int Size { get; set; } private int Size { get; set; }
private string CacheKey { get; set; } private string CacheKey { get; set; }
private string CacheKeyLike { get; set; } private string CacheKeyLike { get; set; }
private string CharacterSet { get; set; }
public void SetCharacterSet(string CharacterSet)
{
this.CharacterSet = CharacterSet;
}
public IFastest<T> RemoveDataCache() public IFastest<T> RemoveDataCache()
{ {
CacheKey = typeof(T).FullName; CacheKey = typeof(T).FullName;

View File

@ -10,6 +10,7 @@ namespace SqlSugar
public interface IFastBuilder public interface IFastBuilder
{ {
SqlSugarProvider Context { get; set; } SqlSugarProvider Context { get; set; }
string CharacterSet { get; set; }
Task<int> UpdateByTempAsync(string tableName,string tempName,string [] updateColumns,string[] whereColumns); Task<int> UpdateByTempAsync(string tableName,string tempName,string [] updateColumns,string[] whereColumns);
Task<int> ExecuteBulkCopyAsync(DataTable dt); Task<int> ExecuteBulkCopyAsync(DataTable dt);
Task CreateTempAsync<T>(DataTable dt) where T : class, new(); Task CreateTempAsync<T>(DataTable dt) where T : class, new();

View File

@ -12,6 +12,7 @@ namespace SqlSugar
IFastest<T> RemoveDataCache(string cacheKey); IFastest<T> RemoveDataCache(string cacheKey);
IFastest<T> AS(string tableName); IFastest<T> AS(string tableName);
IFastest<T> PageSize(int Size); IFastest<T> PageSize(int Size);
void SetCharacterSet(string CharacterSet);
int BulkCopy(List<T> datas); int BulkCopy(List<T> datas);
Task<int> BulkCopyAsync(List<T> datas); Task<int> BulkCopyAsync(List<T> datas);
int BulkCopy(string tableName,DataTable dataTable); int BulkCopy(string tableName,DataTable dataTable);

View File

@ -44,6 +44,10 @@ namespace SqlSugar
TableName = dt.TableName, TableName = dt.TableName,
Local = true, Local = true,
}; };
if (bulk.CharacterSet.HasValue())
{
bulk.CharacterSet = this.CharacterSet;
}
bulk.Columns.AddRange(dt.Columns.Cast<DataColumn>().Select(colum =>new MySqlBuilder().GetTranslationColumnName(colum.ColumnName)).Distinct().ToArray()); bulk.Columns.AddRange(dt.Columns.Cast<DataColumn>().Select(colum =>new MySqlBuilder().GetTranslationColumnName(colum.ColumnName)).Distinct().ToArray());
result= await bulk.LoadAsync(); result= await bulk.LoadAsync();
//执行成功才删除文件 //执行成功才删除文件