Я не вижу смысла в вашем методе расширения, так как метод расширения ToList уже существует, и он создаст список вашего любого типа, и ваш метод будет создавать список с одним элементом, который это IQueryable вашего анонимного типа. Во-вторых, ошибка говорит о том, что GridMaintenanceData имеет свойство KeyFieldName, и вы указали там имя поля, которого нет в источнике данных, с которым вы его связываете, возможно, из-за вашего глупого метода MakeList.
Сделайте это вместо:
var Qry = from tableRaletions in taskMaints.TaskRelations
where tableRaletions.TaskId == Convert.ToInt32(txtID.Text) && tableRaletions.RelTypeId == 12
select new
{
tableRaletions.RefMaintenance.code,
tableRaletions.RefMaintenance.shortdesc
};
GridMaintenanceData.DataSource = Qry.ToList();
GridMaintenanceData.DataBind();