estoy acaba de empezar con EF y una consulta como la siguiente me parece extraña:Métodos del generador de consultas de Entity Framework: ¿por qué "it" y no lambdas?
var departmentQuery =
schoolContext.Departments.Include("Courses").
OrderBy("it.Name");
En concreto, lo que se pega a mí es "it.Name." Cuando estaba trabajando con LINQ to SQL, casi todos los filtros en una consulta query-builder podían especificarse con una lambda, como, en este caso, d => d.Name.
Veo que hay reemplazos de OrderBy que toman lambdas que devuelven un IOrderedQueryable o un IOrderedEnumable, pero obviamente estos no tienen el método Execute necesario para obtener el ObjectResult que luego puede ser databound.
Después de todo, me parece extraño que las lambdas tengan tanto sentido para este tipo de cosas, y cómo se traducen en árboles de expresiones y luego en un idioma de destino, ¿por qué debo usarlo? su nombre"?
Otro ejemplo sería .Where ("it.SomeProperty no es nulo"). Ahora tengo esta extraña mezcolanza de operadores de consultas estándar representados en C# nativo junto con un filtro explícito que vive completamente en TSQL-land. Pensé que el objetivo de EF era alejarse de esto. – nlawalker