mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-10-15 18:55:07 +08:00
Performance optimization
This commit is contained in:
@@ -168,6 +168,7 @@ namespace SqlSugar
|
||||
column.IsOnlyIgnoreInsert = sugarColumn.IsOnlyIgnoreInsert;
|
||||
column.IsEnableUpdateVersionValidation = sugarColumn.IsEnableUpdateVersionValidation;
|
||||
column.IsTranscoding = sugarColumn.IsTranscoding;
|
||||
column.SerializeDateTimeFormat = sugarColumn.SerializeDateTimeFormat;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@@ -678,21 +678,24 @@ namespace SqlSugar
|
||||
if (IsCache)
|
||||
{
|
||||
var cacheService = this.Context.CurrentConnectionConfig.ConfigureExternalServices.DataInfoCacheService;
|
||||
var result = CacheSchemeMain.GetOrCreate<string>(cacheService, this.QueryBuilder, () => { return this.Context.Utilities.SerializeObject(this.ToList()); }, CacheTime, this.Context);
|
||||
var result = CacheSchemeMain.GetOrCreate<string>(cacheService, this.QueryBuilder, () =>
|
||||
{
|
||||
return this.Context.Utilities.SerializeObject(this.ToList(),typeof(T));
|
||||
}, CacheTime, this.Context);
|
||||
return result;
|
||||
}
|
||||
else
|
||||
{
|
||||
return this.Context.Utilities.SerializeObject(this.ToList());
|
||||
return this.Context.Utilities.SerializeObject(this.ToList(), typeof(T));
|
||||
}
|
||||
}
|
||||
public virtual string ToJsonPage(int pageIndex, int pageSize)
|
||||
{
|
||||
return this.Context.Utilities.SerializeObject(this.ToPageList(pageIndex, pageSize));
|
||||
return this.Context.Utilities.SerializeObject(this.ToPageList(pageIndex, pageSize), typeof(T));
|
||||
}
|
||||
public virtual string ToJsonPage(int pageIndex, int pageSize, ref int totalNumber)
|
||||
{
|
||||
return this.Context.Utilities.SerializeObject(this.ToPageList(pageIndex, pageSize, ref totalNumber));
|
||||
return this.Context.Utilities.SerializeObject(this.ToPageList(pageIndex, pageSize, ref totalNumber), typeof(T));
|
||||
}
|
||||
|
||||
public virtual DataTable ToDataTable()
|
||||
|
@@ -28,5 +28,6 @@ namespace SqlSugar
|
||||
public string OracleSequenceName { get; set; }
|
||||
public bool IsOnlyIgnoreInsert { get; set; }
|
||||
public bool IsTranscoding { get; set; }
|
||||
public string SerializeDateTimeFormat { get; set; }
|
||||
}
|
||||
}
|
||||
|
@@ -8,6 +8,7 @@ namespace SqlSugar
|
||||
public interface ISerializeService
|
||||
{
|
||||
string SerializeObject(object value);
|
||||
T DeserializeObject<T>(string value);
|
||||
string SugarSerializeObject(object value);
|
||||
T DeserializeObject<T>(string value);
|
||||
}
|
||||
}
|
||||
|
@@ -237,7 +237,26 @@ namespace SqlSugar
|
||||
DependencyManagement.TryJsonNet();
|
||||
return Context.CurrentConnectionConfig.ConfigureExternalServices.SerializeService.SerializeObject(value);
|
||||
}
|
||||
|
||||
public string SerializeObject(object value, Type type)
|
||||
{
|
||||
DependencyManagement.TryJsonNet();
|
||||
if (type.IsAnonymousType())
|
||||
{
|
||||
return Context.CurrentConnectionConfig.ConfigureExternalServices.SerializeService.SerializeObject(value);
|
||||
}
|
||||
else
|
||||
{
|
||||
var isSugar = this.Context.EntityMaintenance.GetEntityInfo(type).Columns.Any(it=>it.SerializeDateTimeFormat.HasValue());
|
||||
if (isSugar)
|
||||
{
|
||||
return Context.CurrentConnectionConfig.ConfigureExternalServices.SerializeService.SugarSerializeObject(value);
|
||||
}
|
||||
else
|
||||
{
|
||||
return Context.CurrentConnectionConfig.ConfigureExternalServices.SerializeService.SerializeObject(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
@@ -15,6 +15,14 @@ namespace SqlSugar
|
||||
return JsonConvert.SerializeObject(value);
|
||||
}
|
||||
|
||||
public string SugarSerializeObject(object value)
|
||||
{
|
||||
return JsonConvert.SerializeObject(value, new JsonSerializerSettings()
|
||||
{
|
||||
ContractResolver = new MyContractResolver()
|
||||
});
|
||||
}
|
||||
|
||||
public T DeserializeObject<T>(string value)
|
||||
{
|
||||
var jSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
|
||||
|
@@ -15,6 +15,7 @@ namespace SqlSugar
|
||||
List<ExpandoObject> DataReaderToExpandoObjectList(IDataReader reader);
|
||||
List<T> DataReaderToList<T>(IDataReader reader);
|
||||
string SerializeObject(object value);
|
||||
string SerializeObject(object value, Type type);
|
||||
T DeserializeObject<T>(string value);
|
||||
T TranslateCopy<T>(T sourceObject);
|
||||
SqlSugarProvider CopyContext(bool isCopyEvents = false);
|
||||
|
Reference in New Issue
Block a user