Performance optimization

This commit is contained in:
sunkaixuan
2019-05-15 20:28:29 +08:00
parent 8c552f5541
commit 08624cdc94
7 changed files with 40 additions and 6 deletions

View File

@@ -168,6 +168,7 @@ namespace SqlSugar
column.IsOnlyIgnoreInsert = sugarColumn.IsOnlyIgnoreInsert;
column.IsEnableUpdateVersionValidation = sugarColumn.IsEnableUpdateVersionValidation;
column.IsTranscoding = sugarColumn.IsTranscoding;
column.SerializeDateTimeFormat = sugarColumn.SerializeDateTimeFormat;
}
else
{

View File

@@ -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()

View File

@@ -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; }
}
}

View File

@@ -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);
}
}

View File

@@ -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>

View File

@@ -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 };

View File

@@ -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);