Closed GoogleCodeExporter closed 8 years ago
Google translate says:
"Hello, how can I map the data from a table with dapper, consisting in this
tool, which is used as the first step, pq before starting work must be mapped."
Please can you rephrase? The question is very unclear.
Original comment by marc.gravell
on 15 Apr 2014 at 12:10
"Hello, how can I map the data from a table with dapper, consisting in this
tool, which is used as the first step, pq before starting work must be mapped."
Original comment by pavilan...@gmail.com
on 16 Apr 2014 at 12:38
Yes, I already ran it through google translate. I don't understand the
question. Please rephrase. Not repeat.
Original comment by marc.gravell
on 16 Apr 2014 at 9:14
Hola con Dapper se puede mapear las tablas de las base de datos? para ya no
estar escribiendo código mapeando las entidades una a una.
2014-04-15 7:10 GMT-05:00 <dapper-dot-net@googlecode.com>:
Original comment by pavilan...@gmail.com
on 16 Apr 2014 at 9:25
That still isn't very clear, but if you want automatic mapping to multiple
tables, look at dapper.rainbow, which provides much of this. Dapper *core* is
simply a wrapper around TSQL and types.
Original comment by marc.gravell
on 16 Apr 2014 at 9:42
pavilan efectivamente. Con Dapper lo que haces es crear la consulta (o llamada
a un procedimiento almacenado) y el orm lo que hace es mapear cada columna de
la tabla con su correspondiente propiedad de la clase con la que quieres
mapear. Por ejemplo en el siguiente método yo ejecuto un procedimiento
almacenado que recibe varios parámetros:
public void Modificar(Domain.Empresa empresa)
{
var parametros = new DynamicParameters();
parametros.Add("@Id", empresa.Id);
parametros.Add("@Nit", empresa.Nit);
parametros.Add("@DVNit", empresa.DVNit);
parametros.Add("@RazonSocial", empresa.RazonSocial);
parametros.Add("@Direccion", empresa.Direccion);
parametros.Add("@Ciudad", empresa.Ciudad);
parametros.Add("@Telefono", empresa.Telefono);
Dapper.SqlMapper.Execute(_conexion, "spfe_EmpresaModificar", parametros, commandType: CommandType.StoredProcedure);
}
}
El objeto _conexion es simplemente un SQLConnection:
_conexion = new
SqlConnection(ConfigurationManager.ConnectionStrings["Dapper"].ConnectionString)
;
En este caso fue fácil por que simplemente llamé un SP, pero la gracia de
Dapper es cuando quieres devolver objetos:
public List<Domain.Cliente> Listar(int empresaId)
{
var parametros = new DynamicParameters();
parametros.Add("@EmpresaId", empresaId);
return Dapper.SqlMapper.Query<Domain.Cliente>(_conexion, "spfe_ClienteListar", parametros, commandType: CommandType.StoredProcedure).ToList();
}
La clase Cliente:
public class Cliente: Entidad
{
public int Nit { get; internal set; }
public int DVNit { get; internal set; }
public string Nombre { get; internal set; }
public string Direccion { get; internal set; }
public string Telefono { get; internal set; }
public string Email { get; internal set; }
public string Ciudad { get; internal set; }
public int EmpresaId { get; internal set; }
internal Cliente()
{
}
}
Fíjate que lo que hace es llamar a un SP pasándole un parámetro. Dapper lo
que hace es mapear ese resultado con objetos de tipo Domain.Cliente. Si
encuentra el match por nombre de columna le asocia el valor. Esto ya que usa
una propiedad dynamic de .Net que mira contra qué objeto quieres mapear y
empieza a armar el mapeo.
Adicional a eso, tiene un sistema de memoria para que las siguientes peticiones
no vayan al servidor de base de datos, si es que ya fue ejecutada alguna vez:
lo almacena en memoria y luego lo puedes ocupar. Eso nunca lo he usado ya que
es una característica que los creadores usan mucho en stackoverflow.com según
leí, pero no lo conozco bien aún.
Fíjate en la página de inicio, ahí salen ejemplos sobre cómo usarlo. Es muy
sencillo: https://code.google.com/p/dapper-dot-net/
Para finalizar: con Dapper no necesitas mapear con Xml ni nada similar. Es
llegar e identificar las columnas según las propiedades de la clase con la que
mapeas.
Saludos
Original comment by juanpabl...@gmail.com
on 4 Aug 2014 at 2:27
Gracias por la explicación, excelente.
-----Mensaje original-----
De: "dapper-dot-net@googlecode.com" <dapper-dot-net@googlecode.com>
Enviado el: 04/08/2014 09:27 a. m.
Para: "pavilan154@gmail.com" <pavilan154@gmail.com>
Asunto: Re: Issue 172 in dapper-dot-net: Como usar Dapper
Original comment by pavilan...@gmail.com
on 4 Aug 2014 at 5:56
I have no clue what is happening in this conversation, but I'm going to assume
that the "Gracias por la explicación, excelente." indicates that whatever the
question is: it is answered. I'm going to close, but if I have misunderstood,
please post back *preferably in English*, so that I know.
Original comment by marc.gravell
on 4 Aug 2014 at 6:36
Original issue reported on code.google.com by
pavilan...@gmail.com
on 15 Apr 2014 at 11:29