Update exp to sql

This commit is contained in:
sunkaixuan
2022-07-27 23:16:20 +08:00
parent 741a63fa5f
commit 2da4ece3c9
2 changed files with 43 additions and 19 deletions

View File

@@ -507,7 +507,11 @@ namespace SqlSugar
if (property.PropertyType.IsClass())
{
var comumnInfo=property.GetCustomAttribute<SugarColumn>();
if (comumnInfo != null && comumnInfo.IsJson)
if (comumnInfo != null && comumnInfo.IsJson && isSameType)
{
asName = GetAsNameAndShortName(item, shortName, property);
}
else if(comumnInfo != null && comumnInfo.IsJson)
{
asName = GetAsName(item, shortName, property);
}

View File

@@ -407,9 +407,18 @@ namespace SqlSugar
{
var suagrColumn=prop.GetCustomAttribute<SugarColumn>();
if (suagrColumn != null && suagrColumn.IsJson)
{
if (mappingKeys.ContainsKey(item.Name))
{
var key = mappingKeys[item.Name];
Json(readerValues, result, name, typeName,key);
}
else
{
Json(readerValues, result, name, typeName);
}
}
else if (columns.Any(it => it.IsJson))
{
var column = columns.FirstOrDefault(it => it.PropertyName == name);
@@ -457,12 +466,27 @@ namespace SqlSugar
return result;
}
private void Json(Dictionary<string, object> readerValues, Dictionary<string, object> result, string name, string typeName)
private void Json(Dictionary<string, object> readerValues, Dictionary<string, object> result, string name, string typeName,string shortName=null)
{
var key = (typeName + "." + name).ToLower();
if (readerValues.Any(it => it.Key.EqualCase(key)))
{
var jsonString = readerValues.First(it => it.Key.EqualCase(key)).Value;
AddJson(result, name, jsonString);
}
else
{
key = (shortName+"."+typeName + "." + name).ToLower();
if (readerValues.Any(it => it.Key.EqualCase(key)))
{
var jsonString = readerValues.First(it => it.Key.EqualCase(key)).Value;
AddJson(result, name, jsonString);
}
}
}
private void AddJson(Dictionary<string, object> result, string name, object jsonString)
{
if (jsonString != null)
{
if (jsonString.ToString().First() == '{' && jsonString.ToString().Last() == '}')
@@ -480,10 +504,6 @@ namespace SqlSugar
}
}
}
else
{
}
}
#endregion
#region Serialize