 <p>In the end I canned the joined DataTable idea and just read the data straight into a List of my objects with a DataReader. So this whole question is now pretty redundant for me. Hopefully someone else will find it useful.</p>