Implementación de variables en consultas

Completado

Podemos implementar muchas consultas comunes de producto cruzado en el lado del SDK y es posible que quiera agregar filtros para evitar que las consultas exploten en tamaño y complejidad del resultado. Con la clase QueryDefinition y el SDK fluido, podemos agregar parámetros de consulta a fin de ajustar rápidamente los valores de un filtro WHERE para una consulta SQL.

Veamos un ejemplo de consulta SQL que usa una expresión JOIN y un filtro WHERE:

SELECT 
    p.name,
    t.name AS tag
FROM 
    products p
JOIN
    t IN p.tags
WHERE
    p.price > 500

En C#, normalmente crearíamos una definición de consulta mediante la sintaxis siguiente con el valor 500 codificado de forma rígida en un valor de cadena:

string sql = "SELECT p.name, t.name AS tag FROM products p JOIN t IN p.tags WHERE p.price > 500"
QueryDefinition query = new (sql);

Pero mediante el método fluido .WithParameter(string, string), puede agregar parámetros a la consulta, lo que facilita la configuración de parámetros en la consulta:

string sql = "SELECT p.name, t.name AS tag FROM products p JOIN t IN p.tags WHERE p.price > @lower"
QueryDefinition query = new (sql)
    .WithParameter("@lower", 500);

Incluso puede usar varios parámetros en consultas más complejas:

string sql = "SELECT p.name, t.name AS tag FROM products p JOIN t IN p.tags WHERE p.price >= @lower AND p.price <= @upper"
QueryDefinition query = new (sql)
    .WithParameter("@lower", 500)
    .WithParameter("@upper", 1000);