ソースを参照

!1323 修复OrgId设为nullable造成的比较异常
Merge pull request !1323 from samisgod/next

zuohuaijun 1 年間 前
コミット
20f73e4a5f

+ 12 - 3
Admin.NET/Admin.NET.Core/Extension/SqlSugarFilterExtension.cs

@@ -38,13 +38,22 @@ public static class SqlSugarFilterExtension
 
         ParameterExpression parameter = Expression.Parameter(type, "c");
         Expression right = Expression.Constant(false);
-        fieldNames.ForEach(filedName =>
+        fieldNames.ForEach(fieldName =>
         {
             owners.ForEach(owner =>
             {
+                var property = type.GetProperty(fieldName);
+                Expression temp = Expression.Property(parameter, property);
+
+                // 如果属性是可为空的类型,则转换为其基础类型
+                var propertyType = property.PropertyType;
+                if (Nullable.GetUnderlyingType(propertyType) != null)
+                {
+                    temp = Expression.Convert(temp, Nullable.GetUnderlyingType(propertyType));
+                }
+
                 Expression left = Expression.Equal(
-                     Expression.Property(parameter, type.GetProperty(filedName)),
-                     Expression.Constant(owner)
+                    temp, Expression.Constant(owner)
                 );
                 right = Expression.Or(left, right);
             });