Remotion.Linq.SqlBackend.MappingResolution.CompoundExpressionComparisonSplitter.SplitPotentialCompoundComparison C# (CSharp) Метод

SplitPotentialCompoundComparison() публичный метод

public SplitPotentialCompoundComparison ( BinaryExpression potentialCompoundComparison ) : Expression
potentialCompoundComparison BinaryExpression
Результат Expression
    public Expression SplitPotentialCompoundComparison (BinaryExpression potentialCompoundComparison)
    {
      ArgumentUtility.CheckNotNull ("potentialCompoundComparison", potentialCompoundComparison);

      var left = potentialCompoundComparison.Left;
      var right = potentialCompoundComparison.Right;
      var nodeType = potentialCompoundComparison.NodeType;

      // NewExpressions are compared by comparing them member-wise
      var leftExpressionAsNewExpression = left as NewExpression;
      var rightExpressionAsNewExpression = right as NewExpression;

      if (leftExpressionAsNewExpression != null && rightExpressionAsNewExpression != null)
      {
        return CreateCtorArgComparison (
            nodeType, leftExpressionAsNewExpression, rightExpressionAsNewExpression);
      }

      // If only one of the expressions is a NewExpression, we'll assume the form "new { Member = Value } == object", and use the members for the 
      // comparison: "Value == object.Member".

      if (leftExpressionAsNewExpression != null)
        return CreateMemberAccessComparison (nodeType, leftExpressionAsNewExpression, right);

      if (rightExpressionAsNewExpression != null)
        return CreateMemberAccessComparison (nodeType, rightExpressionAsNewExpression, left);

      return potentialCompoundComparison;
    }

Same methods

CompoundExpressionComparisonSplitter::SplitPotentialCompoundComparison ( SqlIsNotNullExpression potentialCompoundComparison ) : Expression
CompoundExpressionComparisonSplitter::SplitPotentialCompoundComparison ( SqlIsNullExpression potentialCompoundComparison ) : Expression