2009-07-31 14 views

Respuesta

5

LINQ tiene una gran ventaja sobre la mayoría de los otros métodos de acceso de datos: se centra alrededor de la 'consulta expresión 'metáfora, lo que significa que las consultas se pueden pasar como objetos y modificarse y modificarse, todas antes de se ejecutan (iteran). En la práctica, eso significa que el código puede ser modular y estar mejor aislado. El repositorio de acceso a datos devolverá la consulta de 'pedidos', luego un filtro intermedio en el canal de procesamiento de solicitudes decorará esta consulta con un filtro, luego pasará a un módulo de visualización que agrega clasificación y paginación, etc. Al final, cuando es iterado, la expresión se ha transformado totalmente en SELECT ... WHERE ... ORDER BY ... LIMIT ... muy específico (o en la otra paginación específica de back-end como ROW_NUMBER). Para los desarrolladores de aplicaciones, esto no tiene precio y simplemente no hay ninguna alternativa viable. Es por eso que creo que LINQ llegó para quedarse y no se desvanecerá en 2 años. Definitivamente es más que solo una moda. Y me refiero específicamente a LINQ como método de acceso a la base de datos.

La ventaja de manipular solo objetos de expresiones de consulta es un factor suficiente para hacer de LINQ una oferta ganadora. Agregue a esto los múltiples tipos de contenedores que puede manipular (XML, matrices y colecciones, objetos, SQL) y la interfaz uniforme que expone sobre todas estas tecnologías dispares, considere los cambios de procesamiento paralelos en .NET 4.0 que estoy seguro será integrado de forma transparente en el procesamiento LINQ de matrices y colecciones, y realmente no es una forma de que LINQ desaparezca. Claro, hoy en día, a veces produce SQL ilegible, mal ejecutable e indebuggable, y cada pesadilla de DBA dedicada. Se pondrá mejor.

+0

lol @ "cada pesadilla de DBA dedicada". – Tundey

+0

Excelente respuesta (yo mismo tuve la misma pregunta) y es bueno saberlo "a veces produce SQL ilegible, mal interpretado e indebuggable". :) – JohnB

4

Linq proporciona acceso de "primera clase" a sus datos. Lo que significa que sus consultas ahora son parte del lenguaje de programación.

Linq proporciona una forma común de acceder a objetos de datos de todo tipo. Por ejemplo, la misma sintaxis que se usa para acceder a las consultas de su base de datos también se puede usar para acceder a listas, matrices y archivos XML.

Learning Linq le proporcionará una comprensión más profunda del lenguaje de programación. Linq fue el impulsor de todo tipo de innovaciones lingüísticas, como métodos de extensión, tipos anónimos, expresiones lambda, árboles de expresiones, inferencias de tipos e inicializadores de objetos.

+0

Me gusta la segunda razón mejor. – JohnB

0

¿Es esta una verdadera pregunta? No se puede responder con un fragmento de código. La mayoría de estas preguntas de tipo de debate se cierran rápidamente.

+3

... probablemente mejor expresada como comentario. –

+1

@Robert Harvey, sí, probablemente sea mejor ser un comentario, pero el contenido es verdadero –

2

Creo que una mejor pregunta es por qué uno reemplazaría SQL con LINQ al consultar una base de datos?

+1

intelliseño tipo seguro en Visual Studio, en lugar de pasar sus grandes blobs de texto (consultas SQL) sin verificación de tipo y sin ningún tipo de seguridad (golpes hasta solo en tiempo de ejecución en producción .....) –

+1

@mark_s: aunque hay otras maneras de hacerlo. Conjuntos de datos fuertemente tipados, por ejemplo. –

+1

Linq es el método preferido para acceder a sus datos a través de un ORM como Linq a SQL o Entity Framework. –

1

"¿Conoces a tu enemigo"?

OTOH, por interés. Estoy aprendiendo más sobre XMl, XSLT, XSDs, etc. porque puedo ver su uso como desarrollador de bases de datos.

0

Creo que una de las muchas razones por las cuales se podría considerar LINQ porque LINQ es gran impulso de la productividad y el tiempo enorme ahorro de

0

Esta pregunta también me hace preguntar, si LINQ se vuelve inmensamente popular, ¿los desarrolladores del lado del servidor sabrán SQL al igual que sus predecesores?

+2

¿Qué tan bien conoce el montaje? –

Cuestiones relacionadas