.net: ¿Convertir una lista genérica a un DataReader?

.net generic-list sqlbulkcopy sqldatareader winforms

Pregunta

Hola, tengo una lista genérica poblada en forma de ganancia y ahora quiero enviar sus datos a una tabla de servidor SQL como una Copia masiva. Mientras leo la clase SqlBulkCopy, necesita un lector de datos como fuente.

Ahora, ¿cómo puedo convertirlo en un DataReader?

Gracias

Respuesta aceptada

Puede convertirlo a DataTable y enviarlo a SqlBulkCopy. Sería mucho más fácil, y no hay una penalización de rendimiento, porque todos los datos ya están presentes en la memoria.

Hay una pregunta similar en SO.


Respuesta experta

Si el volumen de datos es lo suficientemente sensato para existir como una List<T> , también podría construir una DataTable datos y enviar los datos de esa manera. No me gusta DataTable , pero hace muy bien este trabajo. La alternativa sería escribir una implementación de IDataReader personalizada como esta , pero que itera sobre los elementos en la lista cada vez. No estoy seguro de que valga la pena el esfuerzo.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué