Wszyscy wiemy, że DataReadery są szybsze niż DataTables, ponieważ DataReader jest używany do budowy DataTable.Jak przekonwertować DataTable na IDatareader?
Biorąc pod uwagę, że mam już DataTable .... Dlaczego miałbym przekonwertować go do DataReader?
Cóż, tworzę wewnętrzny interfejs o nazwie IDataProvider. Ten interfejs ma być implementowany zarówno lokalnie, jak i jako usługa WebService. Interfejs będzie miał metodę "Getdata", która pobiera pewne informacje o kryteriach i zwraca niektóre dane.
Ponieważ DataReader jest najszybszym mechanizmem pobierania danych, będę chciał użyć tego jako typu wyniku metody "GetData". Wiemy również, że DataReader nie jest możliwy do serializacji i dlatego nie można go przesłać przez Internet za pośrednictwem usługi WWW ...
W przypadku Internetu powinienem mieć lokalną klasę proxy żądać danych jako DataTable i następnie przekształć go lokalnie w DataReader.
W ten sposób aplikacja lokalna nie musi wiedzieć (lub dbać o to), czy ma lokalny czy zdalny dostęp do danych.
Jednak aby to zrobić, muszę wiedzieć ... Jak zawinąć DataReader wokół istniejącej DataTable?
Aktualizacja: Moja logika biznesowa nie będzie przechowywana w serwisie internetowym, ponieważ DataProvider korzystający z usługi Webservice może być przełączalny dla tego, który tego nie robi. BusinessLogic będzie zatem odbywał się w aplikacji klienckiej.
FWIW Używam .Net 3.5 SP1
2 Downvotes ktoś chce komentarz, dlaczego? –
Prawdopodobnie dlatego, że podajesz tylko, że chcesz używać obiektu DataReader, ponieważ uważasz, że pomoże Ci to w wydajności. Potrzebne są dodatkowe informacje na temat konfiguracji aplikacji, dlaczego warto korzystać z DataReadera zamiast z DataTable i gdzie znajduje się logika biznesowa. –
Business-Logic znajduje się w aplikacji klienckiej. –