You can use DynamicLists. Something like this:
var fields = new EntityFields2(1);
fields.DefineField(AccountFields.Id, 0);
var results = new DataTable();
using (var adapter = new DataAccessAdapter())
{
adapter.FetchTypedList(fields, results, null);
}
... or the Linq2LLBL version:
var metaData = new LinqMetaData(adapter);
var q = from a in metaData.Account
select a.Id;