Jak można odwzorować obiekt DataReader na obiekt klasy za pomocą generycznych?C# - Odwzorowanie IDataReader na obiekt przy użyciu generics
Na przykład muszę wykonać następujące czynności:
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;
}
}
a później muszę zadzwonić tej klasy metody tak:
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);
}
zwrócić uwagę, że Mapper - klasa powinna być możliwość odwzorowania obiektu dowolnego typu reprezentowanego przez T.
Jedna z sugestii - odczytana do IEnumerable z zyskiem zwrotu. –
// mapowanie idzie tutaj, dokładnie to, co pokazałem ci w mojej odpowiedzi, możesz odwzorować dowolny obiekt na czytnik danych (dokładniej: wstrzyknięcie wartości z IDataReader do obiektu DOWOLNY RODZAJ) – Omu
Dlaczego nie używałbyś dedykowane ORM? Wygląda na to, że mikro-ORM jak Dapper jest tutaj odpowiedni. – nawfal