Would it make any sense to add one more overload to the FetchProjection method on the DataAccessAdapter object that used a DataTable instead of a DataReader?
adapter.FetchProjection( valueProjectors, projector, datatable );
I realize in this case it would not actually go out to the database to do a query, but it seems easier than creating another class.
I can make a use case where a datatable gets populated, serialized, transmitted, deserialized back to a datatable at which point it needs to get projected onto an entity collection for validation, business processing and finally persisting to a database.
Sure I can write the code to do that, just wanted to offer it as a core suggestion.
Unless of course there is already a way to populate an entity collection from a datatable and I missed it in the docs...