I'm looking for an example of a simple data flow in C# without relying on SSIS or external libraries such as Rhino-ETL (which is a very good library, BTW).
Requirements:
- One arbitrary ADO .Net data source
- One arbitrary ADO .Net data destination
- Does not require entire dataset to be loaded into memory at once, so that it can handle arbitrarily large data sets. It would need to rely on a buffer of some sort, or "yield return" like Rhino ETL takes advantage of.
- Uses bulk insert (i.e. SqlBulkCopy)
- Minimal transformation. No lookups, no merge joins.
- Multi-threaded is not necessary if single threaded can do the job.
Another way of stating the question ... how does Rhino ETL do this, but without all the abstractions and inherited classes, and without the quacking dictionary? I would like to see it in a simple non-abstract class.
And yet another rephrasing of the question: I'm looking for the fundamental example of taking a data flow output of a "select" query, and bulk inserting it at 10,000 or 50,000 records at a time to a destination without loading the entire result into memory, which could potentially exceed available RAM.