Свойства в объекте не обязательно находятся в том же порядке, что и столбцы в базе данных.
Вы можете сделать отражение, чтобы выбрать свойство по индексу, но это не имеет смысла. Вместо этого вы должны использовать имена столбцов.
Исходя из вашего комментария, вы можете сделать то, что столбцы имеют имя, заканчивающееся цифрой.
int columnIndex = 3;
var property = (from p in db.myTable.GetType().GetProperties()
where p.Name.EndsWith(columnIndex.ToString())
select p).First();
var record = db.myTable.single(a=>a.ID==1);
var x = property.GetValue(record, null)