diff --git a/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteSelectTest.cs index e0c46327..61912683 100644 --- a/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteSelectTest.cs @@ -870,7 +870,7 @@ namespace FreeSql.Tests.Sqlite [Column(IsIdentity = true)] public int id { get; set; } - public int model2111Idaaa { get; set; } + public int? model2111Idaaa { get; set; } public string title { get; set; } public List childs2 { get; set; } diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs index ef72a209..dc445c2a 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs @@ -489,8 +489,12 @@ namespace FreeSql.Internal.CommonProvider actWeiParse(binaryExp.Right); break; case ExpressionType.Equal: - var leftP1MemberExp = binaryExp.Left as MemberExpression; - var rightP1MemberExp = binaryExp.Right as MemberExpression; + Expression leftExp = binaryExp.Left; + Expression rightExp = binaryExp.Right; + while (leftExp.NodeType == ExpressionType.Convert) leftExp = (leftExp as UnaryExpression)?.Operand; + while (rightExp.NodeType == ExpressionType.Convert) rightExp = (rightExp as UnaryExpression)?.Operand; + var leftP1MemberExp = leftExp as MemberExpression; + var rightP1MemberExp = rightExp as MemberExpression; if (leftP1MemberExp == null || rightP1MemberExp == null) throw throwNavigateSelector; if (leftP1MemberExp.Expression == whereExpArgLamb.Parameters[0])