diff --git a/Src/Asp.Net/SqlSugar/Infrastructure/ContextMethods.cs b/Src/Asp.Net/SqlSugar/Infrastructure/ContextMethods.cs index 9f3dae42c..cd507473d 100644 --- a/Src/Asp.Net/SqlSugar/Infrastructure/ContextMethods.cs +++ b/Src/Asp.Net/SqlSugar/Infrastructure/ContextMethods.cs @@ -294,7 +294,8 @@ namespace SqlSugar } else if (IsJsonList(readerValues, item)) { - result.Add(name, DeserializeObject>>(readerValues[item.Name.ToLower()].ToString())); + var json = readerValues.First(y => y.Key.EqualCase(item.Name)).Value.ToString(); + result.Add(name, DeserializeObject>>(json)); } else if (IsBytes(readerValues, item)) { @@ -374,10 +375,10 @@ namespace SqlSugar private static bool IsJsonList(Dictionary readerValues, PropertyInfo item) { return item.PropertyType.FullName.IsCollectionsList() && - readerValues.ContainsKey(item.Name.ToLower()) && - readerValues[item.Name.ToLower()] != null && - readerValues[item.Name.ToLower()].GetType() == UtilConstants.StringType && - Regex.IsMatch(readerValues[item.Name.ToLower()].ToString(), @"^\[{.+\}]$"); + readerValues.Any(y=>y.Key.EqualCase(item.Name)) && + readerValues.First(y => y.Key.EqualCase(item.Name)).Value != null && + readerValues.First(y => y.Key.EqualCase(item.Name)).Value.GetType() == UtilConstants.StringType && + Regex.IsMatch(readerValues.First(y => y.Key.EqualCase(item.Name)).Value.ToString(), @"^\[{.+\}]$"); } private Dictionary DataReaderToDynamicList_Part(Dictionary readerValues, PropertyInfo item, List reval, Dictionary mappingKeys=null)