diff --git a/Src/Asp.Net/SqlSugar/Abstract/FastestProvider/Private.cs b/Src/Asp.Net/SqlSugar/Abstract/FastestProvider/Private.cs index 0eedf2bbc..114fec509 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/FastestProvider/Private.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/FastestProvider/Private.cs @@ -103,7 +103,7 @@ namespace SqlSugar { name = column.PropertyName; } - var value = ValueConverter(column, PropertyCallAdapterProvider.GetInstance(column.PropertyName).InvokeGet(item)); + var value = ValueConverter(column, GetValue(item,column)); if (column.SqlParameterDbType != null&& column.SqlParameterDbType is Type && UtilMethods.HasInterface((Type)column.SqlParameterDbType, typeof(ISugarDataConverter))) { var columnInfo = column; @@ -155,6 +155,18 @@ namespace SqlSugar return dt; } + private static object GetValue(T item, EntityColumnInfo column) + { + if (StaticConfig.EnableAot) + { + return column.PropertyInfo.GetValue(item); + } + else + { + return PropertyCallAdapterProvider.GetInstance(column.PropertyName).InvokeGet(item); + } + } + private string GetTableName() { if (this.AsName.HasValue()) diff --git a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableHelper.cs b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableHelper.cs index b0cc79549..30057a538 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableHelper.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableHelper.cs @@ -252,7 +252,7 @@ namespace SqlSugar var isMapping = IsMappingColumns; var columnInfo = new DbColumnInfo() { - Value = PropertyCallAdapterProvider.GetInstance(column.PropertyName).InvokeGet(item), + Value = GetValue(item,column), DbColumnName = column.DbColumnName, PropertyName = column.PropertyName, PropertyType = UtilMethods.GetUnderType(column.PropertyInfo), @@ -316,6 +316,17 @@ namespace SqlSugar } } } + private static object GetValue(T item, EntityColumnInfo column) + { + if (StaticConfig.EnableAot) + { + return column.PropertyInfo.GetValue(item, null); + } + else + { + return PropertyCallAdapterProvider.GetInstance(column.PropertyName).InvokeGet(item); + } + } private string GetDbColumnName(string propertyName) { diff --git a/Src/Asp.Net/SqlSugar/Infrastructure/StaticConfig.cs b/Src/Asp.Net/SqlSugar/Infrastructure/StaticConfig.cs index c196b653f..092e5b8c5 100644 --- a/Src/Asp.Net/SqlSugar/Infrastructure/StaticConfig.cs +++ b/Src/Asp.Net/SqlSugar/Infrastructure/StaticConfig.cs @@ -8,6 +8,7 @@ namespace SqlSugar { public class StaticConfig { + public static bool EnableAot { get; set; } public static Func Encode { get; set; } public static Func Decode{ get; set; } public static bool AppContext_ConvertInfinityDateTime { get; set; }