A datatable is actually a list of object[] objects, so its memory footprint isn't much bigger than the data it contains. An entity class contains field objects and inside them there is extra data. Not much, but it's there. In v3 we reduced the memory footprint again, and the instantiation time as well. We do what we can to keep memory footprints to a bare minimum, but there is some data overhead when using an entity, it's a complex object, not an object[].
Btw, how are you measuring memory consumption? in debug mode, .net reserves a lot more memory for separate objects.