From da1d7f782a2eadf540503b677e0ebbcee47fcf6f Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Fri, 16 Aug 2019 19:51:09 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=20IncludeMany=20?= =?UTF-8?q?=E5=8F=98=E5=BC=82=20Where=20=E6=8C=87=E5=AE=9A=E7=9A=84?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E7=B1=BB=E5=9E=8B=E4=B8=8D=E4=B8=80=E8=87=B4?= =?UTF-8?q?=E7=9A=84=20bug=EF=BC=9B=EF=BC=88=E5=A6=82=20int=20=E5=92=8C=20?= =?UTF-8?q?int=3F)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FreeSql.Tests/Sqlite/Curd/SqliteSelectTest.cs | 2 +- .../CommonProvider/SelectProvider/Select1Provider.cs | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) 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])