还有,我想问下,关于ef这类的框架都是解析表达式,从而生成sql的吧?我觉得应该是这样body.Left和body.Right它是怎么分的。。Find<int>(x => x > 5&&x/2>0&&x<20);这样它的left是x => x > 5&&x/2  right是x<20

解决方案 »

  1.   


    System.Object
      System.Linq.Expressions.Expression
        System.Linq.Expressions.BinaryExpression
        System.Linq.Expressions.BlockExpression
        System.Linq.Expressions.ConditionalExpression
        System.Linq.Expressions.ConstantExpression
        System.Linq.Expressions.DebugInfoExpression
        System.Linq.Expressions.DefaultExpression
        System.Linq.Expressions.DynamicExpression
        System.Linq.Expressions.GotoExpression
        System.Linq.Expressions.IndexExpression
        System.Linq.Expressions.InvocationExpression
        System.Linq.Expressions.LabelExpression
        System.Linq.Expressions.LambdaExpression
        System.Linq.Expressions.ListInitExpression
        System.Linq.Expressions.LoopExpression
        System.Linq.Expressions.MemberExpression
        System.Linq.Expressions.MemberInitExpression
        System.Linq.Expressions.MethodCallExpression
        System.Linq.Expressions.NewArrayExpression
        System.Linq.Expressions.NewExpression
        System.Linq.Expressions.ParameterExpression
        System.Linq.Expressions.RuntimeVariablesExpression
        System.Linq.Expressions.SwitchExpression
        System.Linq.Expressions.TryExpression
        System.Linq.Expressions.TypeBinaryExpression
        System.Linq.Expressions.UnaryExpression
    如你所说,没有PropertyExpression。
    而是MemberExpression
      

  2.   

    用Expression.Property或者MakeMemberAccess