¿Cómo puedo asignar un objeto DataReader a un objeto de clase utilizando genéricos?C# - Asignación de IDataReader a Objetos utilizando genéricos
Por ejemplo tengo que hacer lo siguiente:
public class Mapper<T>
{
public static List<T> MapObject(IDataReader dr)
{
List<T> objects = new List<T>();
while (dr.Read())
{
//Mapping goes here...
}
return objects;
}
}
Y después tengo que llamar a esta clase de método como el siguiente:
IDataReder dataReader = DBUtil.Fetchdata("SELECT * FROM Book");
List<Book> bookList = Mapper<Book>.MapObject(dataReder);
foreach (Book b in bookList)
{
Console.WriteLine(b.ID + ", " + b.BookName);
}
Tenga en cuenta que, el Mapeador - clase debe ser capaz de mapear objetos de cualquier tipo representado por T.
Una sugerencia: lea en un IEnumerable con un retorno de rendimiento. –
// el mapeo va aquí, exactamente lo que te he mostrado en mi respuesta, puedes mapear cualquier objeto al lector de datos (más exactamente: inyectando valores de un IDataReader en un objeto CUALQUIER TIPO) – Omu
¿Por qué no usarías un ¿ORM dedicado entonces? Un micro-ORM como Dapper parece ser una buena opción aquí. – nawfal