Dapper: ¿Cómo devolver las columnas seleccionadas?

dapper

Pregunta

public List<Customer> getCustomer() 
{
    using (IDbConnection con=DapperConnection())
    {
        string sql = "Select * from Customer";
        return con.Query<Customer>(sql).Select(x => new { x.Id, x.LastName })
                    .ToList();
    }
}

class Customer 
{
    public string Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set;}
}

¿Alguien sabe cómo devolver columnas específicas usando dapper? Lo que intento lograr es devolver solo Id y LastName como List para poder vincularlos a mis controles.

Respuesta popular

No estoy seguro de lo que quiere decir exactamente, pero seguramente debería devolver el objeto del cliente en lugar de un tipo anónimo, o al menos hacer una versión más pequeña del objeto del cliente para ser utilizado por los controles.

    public List<Customer> getCustomers()
    {
        using (IDbConnection con = DapperConnection())
        {
            string sql = "Select * from Customer";
            return con.Query<Customer>(sql).ToList();
        }
    }

O si no le gusta la sobrecarga de devolver el objeto completo del cliente

    public List<CustomerBase> getCustomers()
    {
        using (IDbConnection con = DapperConnection())
        {
            string sql = "Select * from Customer";
            return con.Query<CustomerBase>(sql).ToList();
        }
    }

    public class CustomerBase
    {
        public string Id { get; set; }
        public string LastName { get; set; }
    }

    public class Customer: CustomerBase
    {
        public string FirstName { get; set; }
        //Other props...
    }


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué