esiste un modo semplice per fare un databind da una query linq?

con questo metodo da errore di
codice:
   var result = (from r in db.TB_CANALI_RICHIESTEs
                                       orderby r.Descrizione select r).ToList();
mi da errore di conversione in datarow

ho dovuto fare un po di giri per convertire tutto in datatable
codice:

               var result = (from r in db.TB_CANALI_RICHIESTEs
                                       orderby r.Descrizione select r);
                                        //select new { r.id_canale, r.Descrizione };


                DataTable MyDataTable = new DataTable();
                MyDataTable.Columns.Add("Descrizione", System.Type.GetType("System.String"));
                MyDataTable.Columns.Add("id_canale", System.Type.GetType("System.Int32"));
                  


                foreach (var element in result)
                {
                    var row = MyDataTable.NewRow();
                    row["Descrizione"] = element.Descrizione;
                    row["id_canale"] = element.id_canale;
                    MyDataTable.Rows.Add(row);
                }


                grwLista.DataSource = MyDataTable;
                grwLista.DataBind();