From 520b48ef8141915e48bada75e4f3f8cbf2b1ce0f Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Fri, 17 Nov 2023 02:02:16 +0800 Subject: [PATCH] Support aot --- .../SqlSugar/Abstract/FastestProvider/Private.cs | 14 +++++++++++++- .../SqlSugar/Infrastructure/StaticConfig.cs | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/FastestProvider/Private.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/FastestProvider/Private.cs index 0eedf2bbc..114fec509 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/FastestProvider/Private.cs +++ b/Src/Asp.NetCore2/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.NetCore2/SqlSugar/Infrastructure/StaticConfig.cs b/Src/Asp.NetCore2/SqlSugar/Infrastructure/StaticConfig.cs index c196b653f..092e5b8c5 100644 --- a/Src/Asp.NetCore2/SqlSugar/Infrastructure/StaticConfig.cs +++ b/Src/Asp.NetCore2/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; }