diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableHelper.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableHelper.cs index c95236e7c..351bcb5d4 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableHelper.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableHelper.cs @@ -1870,11 +1870,13 @@ namespace SqlSugar else { result = this.Context.Utilities.DataReaderToList(dataReader); + if (StaticConfig.EnableAot) + ResetNavigationPropertiesForAot(result); } } else { - result = this.Bind.DataReaderToList(entityType, dataReader); + result = this.Bind.DataReaderToList(entityType, dataReader); } SetContextModel(result, entityType); return result; @@ -1914,15 +1916,35 @@ namespace SqlSugar else { result = await this.Context.Utilities.DataReaderToListAsync(dataReader); + if (StaticConfig.EnableAot) + ResetNavigationPropertiesForAot(result); } } else { - result = await this.Bind.DataReaderToListAsync(entityType, dataReader); + result = await this.Bind.DataReaderToListAsync(entityType, dataReader); } SetContextModel(result, entityType); return result; } + private void ResetNavigationPropertiesForAot(List result) + { + if (StaticConfig.EnableAot) + { + var entityInfo = this.Context.EntityMaintenance.GetEntityInfo(); + var navColumnList = entityInfo.Columns.Where(it => it.Navigat != null); + if (navColumnList.Any()) + { + foreach (var item in result) + { + foreach (var columnInfo in navColumnList) + { + columnInfo.PropertyInfo.SetValue(item, null); + } + } + } + } + } protected void _InQueryable(Expression expression, KeyValuePair> sqlObj) { QueryBuilder.CheckExpression(expression, "In");