From 231d5ac555532c950f5a4ba5d1772dbb2652a8b8 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Sun, 17 Dec 2023 12:31:15 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BC=98=E5=8C=96=20AOT=20=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=AF=BC=E8=87=B4=20Enum.GetValues=20=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=9B#1691?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql/Internal/UtilsExpressionTree.cs | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/FreeSql/Internal/UtilsExpressionTree.cs b/FreeSql/Internal/UtilsExpressionTree.cs index 3721c070..b28c74fa 100644 --- a/FreeSql/Internal/UtilsExpressionTree.cs +++ b/FreeSql/Internal/UtilsExpressionTree.cs @@ -252,16 +252,21 @@ namespace FreeSql.Internal if (entityDefault != null) defaultValue = trytb.Properties[csName].GetValue(entityDefault, null); if (defaultValue != null && mapType.IsEnum) { - var isEqualsEnumValue = false; - var enumValues = Enum.GetValues(mapType); - for (var a = 0; a < enumValues.Length; a++) - if (object.Equals(defaultValue, enumValues.GetValue(a))) - { - isEqualsEnumValue = true; - break; - } - if (isEqualsEnumValue == false && enumValues.Length > 0) - defaultValue = enumValues.GetValue(0); + Array enumValues = null; + try { enumValues = Enum.GetValues(mapType); } //AOT error + catch { } + if (enumValues != null) + { + var isEqualsEnumValue = false; + for (var a = 0; a < enumValues.Length; a++) + if (object.Equals(defaultValue, enumValues.GetValue(a))) + { + isEqualsEnumValue = true; + break; + } + if (isEqualsEnumValue == false && enumValues.Length > 0) + defaultValue = enumValues.GetValue(0); + } } if (defaultValue != null && mapType != colattr.MapType) defaultValue = Utils.GetDataReaderValue(colattr.MapType, defaultValue); if (defaultValue == null) defaultValue = tp?.defaultValue;