- 修复 IncludeMany 变异 Where 指定的属性类型不一致的 bug;(如 int 和 int?)

This commit is contained in:
2881099 2019-08-16 19:51:09 +08:00
parent b0314f643e
commit da1d7f782a
2 changed files with 7 additions and 3 deletions

View File

@ -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<TestInclude_OneToManyModel4> childs2 { get; set; }

View File

@ -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])