.net - seleccionar - LinqToSQL Select y SelectMany vs Join
seleccionar elementos de una lista c# (1)
¿Son los preferidos y los selectos preferidos para unirse?
La razón por la que me pregunto es porque utilizo LinqPad y en una sección hay comentarios que dicen:
// Note: before delving into this section, make sure you''ve read the preceding two
// sections: Select and SelectMany. The Join operators are actually unnecessary
// in LINQ to SQL, and the equivalent of SQL inner and outer joins is most easily
// achieved in LINQ to SQL using Select/SelectMany and subqueries!
Sin embargo, en otras secciones muestra claramente que las uniones son más rápidas (al menos para los ejemplos dados en LinqPad) y para mí son más fáciles de visualizar en mi cabeza.
Tal vez estoy malinterpretando, ya que solo estoy mirando las muestras del código y no el libro, pero he visto a otras personas recomendar Seleccionar y Seleccionar muchas más de las uniones también.
El Wayward Weblog tenía esto que decir con respecto al asunto. Unirse utiliza un conjunto explícito de parámetros para unirse a una clave específica y permite combinaciones externas izquierda y derecha. SelectMany realiza un enlace monádico que generalmente da como resultado una unión interna o una unión cruzada. Como LINQ es esencialmente una implementación de programación funcional en .NET, SelectMany es la expresión más natural; sin embargo, la configuración explícita de la unión probablemente resulte en acciones más rápidas.
En cuanto a preferido, creo que lo que sea que lea con mayor claridad es lo mejor para ti. La versión de C # de 101 muestras de LINQ no incluye unir, pero la lista de VB muestra Unir y seleccionarMuchas veces utilizadas en diferentes escenarios.