public override SyntaxNode VisitBlock(BlockSyntax node) { var value = base.VisitBlock(node); if (_isExpressionTransformer && _transform && node.Parent is MethodDeclarationSyntax) { _isExpressionTransformer = false; _transform = false; var newStatements = new[] { string.Concat("value = new ", _expressionTransformerNamespaceDot, _edmxName, @"ExpressionTransformer().TransformExpression(expression, contextName);"), @" if (value != expression) return value;" }; var statements = node.ChildNodes().OfType<StatementSyntax>().ToList(); return node.DefineStatements(statements.Take(statements.Count - 1).Union(newStatements.Select(s => Syntax.ParseStatement(s))).Union(new[] { statements[statements.Count - 1] })); } return value; }
public override SyntaxNode VisitBlock(BlockSyntax node) { var value = base.VisitBlock(node); if (_isExpressionTransformer && _transform && node.Parent is MethodDeclarationSyntax) { _isExpressionTransformer = false; _transform = false; var newStatements = new[] { string.Concat("value = new ", _expressionTransformerNamespaceDot, _edmxName, @"ExpressionTransformer().TransformExpression(expression, contextName);"), @" if (value != expression) return value;" }; var statements = node.ChildNodes().OfType <StatementSyntax>().ToList(); return(node.DefineStatements(statements.Take(statements.Count - 1).Union(newStatements.Select(s => Syntax.ParseStatement(s))).Union(new[] { statements[statements.Count - 1] }))); } return(value); }