Un proyecto en el que estoy trabajando actualmente implica la refacturación de un objeto C# Com que sirve como una capa de acceso a la base de datos en algunas bases de datos Sql 2005.¿La mejor manera de construir consultas SQL dinámicas en C# /. NET3.5?
El autor del código existente ha construido todas las consultas sql manualmente utilizando una cadena y muchas instrucciones if para construir la declaración sql bastante compleja (~ 10 uniones,> 10 sub selecciones, ~ 15-25 donde las condiciones y GroupBy) La tabla base siempre es la misma, pero la estructura de las uniones, las condiciones y las agrupaciones depende de un conjunto de parámetros que se pasan a mi clase/método.
Construir la consulta sql de esta manera funciona, pero obviamente no es una solución muy elegante (y bastante difícil de leer/entender y mantener también) ... Podría escribir un simple "generador de consultas" pero yo estoy bastante seguro de que no soy el primero con este tipo de problema, de ahí mis preguntas:
- ¿Cómo se construir las consultas de bases de datos?
- ¿C# ofrece una manera fácil de generar consultas dinámicamente?
¿Cómo son un grupo de declaraciones IF una consulta dinámica? –
El IQueryable se convierte a SQL en la última línea, donde la consulta se ejecuta realmente; all Donde las declaraciones LINQ se convierten en una cláusula SQL WHERE. Esta es la forma en que hago SQL altamente variable también. Es mucho más limpio que tratar de escribir un proceso almacenado para hacerlo. –
@Kyralessa: Gracias por la explicación. –