Remotion.Linq.SqlBackend.MappingResolution.EntityIdentityResolver.ResolvePotentialEntity C# (CSharp) Метод

ResolvePotentialEntity() публичный Метод

public ResolvePotentialEntity ( Expression expression ) : Expression
expression System.Linq.Expressions.Expression
Результат System.Linq.Expressions.Expression
    public Expression ResolvePotentialEntity (Expression expression)
    {
      ArgumentUtility.CheckNotNull ("expression", expression);

      var strippedExpression = StripConversions (expression);

      var namedExpression = strippedExpression as NamedExpression;
      if (namedExpression != null)
      {
        var result = ResolvePotentialEntity (namedExpression.Expression);
        if (result != namedExpression.Expression)
          return new NamedExpression (namedExpression.Name, result);

        return expression;
      }

      var entityExpression = strippedExpression as SqlEntityExpression;
      if (entityExpression != null)
        return entityExpression.GetIdentityExpression ();

      var entityConstantExpression = strippedExpression as SqlEntityConstantExpression;
      if (entityConstantExpression != null)
        return entityConstantExpression.IdentityExpression;

      var entityRefMemberExpression = strippedExpression as SqlEntityRefMemberExpression;
      if (entityRefMemberExpression != null)
        return GetIdentityExpressionForReferencedEntity (entityRefMemberExpression);

      var sqlSubStatementExpression = strippedExpression as SqlSubStatementExpression;
      if (sqlSubStatementExpression != null)
        return CheckAndSimplifyEntityWithinSubStatement (sqlSubStatementExpression);

      return expression;
    }