Skip to content

Remove tuple implementation #2

@learncode

Description

@learncode

Similar to

... Query<T>(..., Expression<Func<T>> parameters)
{
    var paramVisitor = new ParameterVisitor();
    paramVisitor.Visit(parameters);
    // use paramVisitor.Parameters
}
class ParameterVisitor : System.Linq.Expressions.ExpressionVisitor
{
    List<IDbDataParameter> _parameters = new List<IDbDataParameter>();
    public IDbDataParameter[] Parameters => _parameters.ToArray();
    protected override Expression VisitNew(NewExpression node)
    {
        Console.WriteLine(node.ToString());
        for (int i = 0; i < node.Members.Count; i++)
        {
            _parameters.Add(CreateParameter(node.Members[i].Name, ((ConstantExpression)node.Arguments[i]).Value));
        }
        return node;
    }
}

As suggested by tragicshark

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions