performance optimization

This commit is contained in:
sunkaixuan 2019-04-29 17:54:36 +08:00
parent 2b98357cf1
commit d96d00c97c
2 changed files with 26 additions and 19 deletions

View File

@ -16,7 +16,7 @@ namespace OrmTest.Models
public int? SchoolId { get; set; } public int? SchoolId { get; set; }
public string Name { get; set; } public string Name { get; set; }
public DateTime? CreateTime { get; set; } public DateTime? CreateTime { get; set; }
[SugarColumn(IsIgnore=true)] [SugarColumn(IsIgnore=true,NoSerialize =true)]
public int TestId { get; set; } public int TestId { get; set; }
} }

View File

@ -26,7 +26,7 @@ namespace SqlSugar
} }
public class MyContractResolver : Newtonsoft.Json.Serialization.DefaultContractResolver public class MyContractResolver : Newtonsoft.Json.Serialization.DefaultContractResolver
{ {
public MyContractResolver() public MyContractResolver()
{ {
@ -35,24 +35,31 @@ namespace SqlSugar
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization) protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{ {
var list = type.GetProperties() if (type.IsAnonymousType()||type==UtilConstants.ObjType|| type.Namespace=="SqlSugar"|| type.IsClass()==false)
.Where(x => !x.GetCustomAttributes(true).Any(a => (a is SugarColumn) && ((SugarColumn)a).NoSerialize == true))
.Select(p => new JsonProperty()
{
PropertyName = p.Name,
PropertyType = p.PropertyType,
Readable = true,
Writable = true,
ValueProvider = base.CreateMemberValueProvider(p)
}).ToList();
foreach (var item in list)
{ {
if (UtilMethods.GetUnderType(item.PropertyType) == UtilConstants.DateType) return base.CreateProperties(type, memberSerialization);
{ }
CreateDateProperty(type, item); else
} {
var list = type.GetProperties()
.Where(x => !x.GetCustomAttributes(true).Any(a => (a is SugarColumn) && ((SugarColumn)a).NoSerialize == true))
.Select(p => new JsonProperty()
{
PropertyName = p.Name,
PropertyType = p.PropertyType,
Readable = true,
Writable = true,
ValueProvider = base.CreateMemberValueProvider(p)
}).ToList();
foreach (var item in list)
{
if (UtilMethods.GetUnderType(item.PropertyType) == UtilConstants.DateType)
{
CreateDateProperty(type, item);
}
}
return list;
} }
return list;
} }
private static void CreateDateProperty(Type type, JsonProperty item) private static void CreateDateProperty(Type type, JsonProperty item)
@ -66,5 +73,5 @@ namespace SqlSugar
} }
} }
} }
} }