Principales respuestas
automapper datatable a objeto

Pregunta
-
hola foro :
Tengo un store que me devuelve una dataset , como puede hacer con automapper para mapear la tabla del dataset a un objeto orden de compra que adentro tiene objetos hijos renglones orden de compra
el codigo que estoy intentando es este: Alguna sugerencia .?
el metodo esta en un webervice y tiene esta firma :
public OrdenPrestacionCompra ObtenerOrdenPrestacionDTO(int idOrden)
{ds = AccesoDatos.ObtenerOrdenCompra(idOrden);
DataTable dt = ds.Tables[0];
AutoMapper.Mapper.CreateMap<IDataReader, OrdenCompraDTO>()
.ForMember(dest => dest.CabeceraOrden, opt => opt.MapFrom(src => src.));
DataTableReader dtr = dt.CreateDataReader();
// List<Person> people = new List<Person>();
OrdenCompraDTO= AutoMapper.Mapper.Map<OrdenCompraDTO>(dtr)gracias
- Editado Inovador2015 martes, 22 de marzo de 2016 3:31
Respuestas
-
hola
el tema es que si al menos fuera un dataset tipado podrias mapear las propeidades de uno en otro
aunque quizas puedes hacer
>>sino es codificarla de vuelta
porque de vuelta? solo cambiarias el Fill() por el while para asignar los campos a las propiedades, eso no deberia llevarte a lo sumo mas un par de horas
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Marcado como respuesta Inovador2015 martes, 22 de marzo de 2016 22:50
Todas las respuestas
-
hola
>>Tengo un store que me devuelve una dataset
porque devuelve un dataset ? si podrias usar el ExecuteReader() y cargar una entidad
defines una clase como ser
public class Item{ public string Prop1 {get;set;} public string Prop2 {get;set;} public string Prop3 {get;set;} }
y luego ejecutas el procedure recorriendo sus registros para volcarlos a la lista
List<Item> lista = new List<Item>(); string connstring = "connection string"; using (SqlConnection cn = new SqlConnection(connstring)) { cn.Open(); string sql = "SELECT campo1, campo2, campo3 FROM Tabla WHERE id =@id"; SqlCommand cmd = new SqlCommand(query, cn); cmd.Parameters.AddwithValue("@id", Convert.Toint32(txtId.Text)); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { Item obj = new Item(); obj.Prop1 = Convert.ToString(reader["campo1"]); obj.Prop2 = Convert.ToString(reader["campo2"]); obj.Prop3 = Convert.ToString(reader["campo3"]); lista.Add(obj); } }
de esta forma no necesitas ninguna dataset y si quieres convertir con automapper puedes hacer de una clase a otra
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
-
hola
el tema es que si al menos fuera un dataset tipado podrias mapear las propeidades de uno en otro
aunque quizas puedes hacer
>>sino es codificarla de vuelta
porque de vuelta? solo cambiarias el Fill() por el while para asignar los campos a las propiedades, eso no deberia llevarte a lo sumo mas un par de horas
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Marcado como respuesta Inovador2015 martes, 22 de marzo de 2016 22:50
-
-
>>como lo podria hacer con el ejemplo de arriba ? como uso el fill?
cual ejemplo haces referencia ? usar el fill ?
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina