public static IQuerySource GetQuerySource(Expression expression) { var sourceExtractor = new QuerySourceExtractor(); sourceExtractor.VisitExpression(expression); return(sourceExtractor._querySource); }
public bool CanAddJoin(Expression expression) { var source = QuerySourceExtractor.GetQuerySource(expression); if (_queryModel.MainFromClause == source) { return(true); } var bodyClause = source as IBodyClause; if (bodyClause != null && _queryModel.BodyClauses.Contains(bodyClause)) { return(true); } var resultOperatorBase = source as ResultOperatorBase; return(resultOperatorBase != null && _queryModel.ResultOperators.Contains(resultOperatorBase)); }
public static IQuerySource GetQuerySource(Expression expression) { var sourceExtractor = new QuerySourceExtractor(); sourceExtractor.VisitExpression(expression); return sourceExtractor._querySource; }