это немного сложно определить по текущему коду. В приведенном ниже примере используется то же выражение OrderBy, и оно компилируется и выполняется нормально.
public class A { public int ID; }
public static void Test()
{
List<A> listA = new List<A> {new A {ID=7}, new A {ID=2}, new A {ID=16}};
var query1 = from x in listA orderby x.ID select x;
var query2 = (from x in listA select x).OrderBy(a => a.ID);
foreach(var x1 in query1) Console.WriteLine("{0}", x1.ID);
foreach(var x2 in query2) Console.WriteLine("{0}", x2.ID);
}
Ошибка, которая у вас действительно может быть из-за недостаточной информации о типе ключа. Эта дискуссия может помочь вам в этом.
Обновление:
Ах, это в режиме отладки, как в режиме отладки, а не в цели DEBUG, не так ли?! ...
Если вы пытаетесь увидеть результат в быстром просмотре или в непосредственном окне - это ожидаемая ошибка. Это не означает, что с кодом что-то не так, просто отладчику не нравятся лямбда-выражения.