For that you need to use the DbDataRecord and then map it to some object (a DTO, or the dynamic object). There is an example of how to do that here: http://www.codeproject.com/Articles/152742/EF-DbDataRecord-ConvertTo .
The problem with this kind of access on the ORM is that it breaks the abstraction provided by it. Then you can't use the Mapper provided by the CreateQuery because the object you are using is not in the model.
You can see here Entity Framework + AutoMapper ( Entity to DTO and DTO to Entity ) some examples on how to use the Mapper.
I suggest that you use Linq because it can create anonymous types. And for that join you don't need to manually create SQL, it is not so complex. Entity framework left join