diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index 68b2701d5..f1f656065 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -1332,6 +1332,10 @@ namespace SqlSugar } public List SetContext(Expression> thisFiled, Expression> mappingFiled, ParameterT parameter) { + if (parameter == null) + { + return new List(); + } List result = new List(); var entity = this.Context.EntityMaintenance.GetEntityInfo(); var queryableContext = this.Context.TempItems["Queryable_To_Context"] as MapperContext; @@ -1346,7 +1350,7 @@ namespace SqlSugar pkName = ((mappingFiled as LambdaExpression).Body as MemberExpression).Member.Name; } var key = thisFiled.ToString() +typeof(ParameterT).FullName + typeof(T).FullName; - var ids = list.Select(it => it.GetType().GetProperty(pkName).GetValue(it)).ToArray(); + var ids = list.Where(it=>it!=null).Select(it => it.GetType().GetProperty(pkName).GetValue(it)).Distinct().ToArray(); if (queryableContext.TempChildLists == null) queryableContext.TempChildLists = new Dictionary(); if (list != null && queryableContext.TempChildLists.ContainsKey(key))