Come si può mappare un oggetto DataReader in un oggetto di classe utilizzando i generici?C# - IDataReader alla mappatura di oggetti mediante generici
Per esempio ho bisogno di fare quanto segue:
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;
}
}
E poi ho bisogno di chiamare questa classe metodo simile al seguente:
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);
}
Si noti che, il Mapper - classe dovrebbe essere in grado di mappare l'oggetto di qualsiasi tipo rappresentato da T.
Un suggerimento: leggere in un oggetto IEnumerable con un rendimento restituito. –
// mapping va qui, esattamente quello che ti ho mostrato nella mia risposta, puoi mappare qualsiasi oggetto al lettore di dati (più esattamente: iniettare valori da un IDataReader in un oggetto QUALSIASI TIPO) – Omu
Perché non dovresti usare un ORM dedicato allora? Un micro-ORM come Dapper sembra essere una buona scelta qui. – nawfal