Dipende dalla quantità di dati di cui stai parlando, ma tenderei a trasmettere i set di dati .Net per un'attività di migrazione, poiché ciò significa estrarre tutti i dati in memoria. Se devi fallo tramite un programma client .Net, almeno usa invece un DataReader. Ma ciò che è ancora meglio è mantenere tutto in Sql Server tramite Servizi di integrazione con SQL Server .