- 修复 JsonMap 与导航属性的联表查询报错的 bug;#996

This commit is contained in:
2881099 2022-01-05 12:35:44 +08:00
parent 9fc91f1501
commit 3a453d918d

View File

@ -14,6 +14,7 @@ public static class FreeSqlJsonMapCoreExtensions
static MethodInfo MethodJsonConvertDeserializeObject = typeof(JsonConvert).GetMethod("DeserializeObject", new[] { typeof(string), typeof(Type) });
static MethodInfo MethodJsonConvertSerializeObject = typeof(JsonConvert).GetMethod("SerializeObject", new[] { typeof(object), typeof(JsonSerializerSettings) });
static ConcurrentDictionary<Type, ConcurrentDictionary<string, bool>> _dicJsonMapFluentApi = new ConcurrentDictionary<Type, ConcurrentDictionary<string, bool>>();
static object _concurrentObj = new object();
public static ColumnFluent JsonMap(this ColumnFluent col)
{
@ -52,6 +53,9 @@ public static class FreeSqlJsonMapCoreExtensions
e.ModifyResult.StringLength = -2;
if (_dicTypes.TryAdd(e.Property.PropertyType, true))
{
lock (_concurrentObj)
{
FreeSql.Internal.Utils.dicExecuteArrayRowReadClassOrTuple[e.Property.PropertyType] = true;
FreeSql.Internal.Utils.GetDataReaderValueBlockExpressionObjectToStringIfThenElse.Add((LabelTarget returnTarget, Expression valueExp, Expression elseExp, Type type) =>
{
return Expression.IfThenElse(
@ -61,6 +65,7 @@ public static class FreeSqlJsonMapCoreExtensions
});
}
}
}
};
}
}