Pregunta

usando C # 3.5 a VS 2008 y subsónico 2.2. Cualquier persona que sepa si es posible crear una consulta subsónica que esencialmente tiene un 'si' en medio de ella, dependiendo de si un parámetro aprobado fue, por ejemplo, mayor que cero.

Por ejemplo, un método de eliminación que tiene dos parámetros aprobados: A y B.

quiero algo como (pseudo código)

DELETE from Products
Where productId = A
if(B > 0)
{
AND ProductAttributeId = B
}

Obviamente, no necesitaría la cláusula actual 'si' allí, pero esa es la esencia de lo que estoy tratando de hacer con subsónicos.Sé que puedo tener dos consultas diferentes dependiendo de si el parámetro está ahí o no, pero me preguntaba si hay una forma más limpia de hacerlo.

gracias.

¿Fue útil?

Solución

That's how I usually do it - it's not two queries, but one SqlQuery with optionally added constraints:

SqlSquery q = DAL.DB.Delete()
    .From<DAL.Product()
    .Where(DAL.Product.ProductIdColumn).IsEqualTo(A);
if (B > 0)
{
    q.And(DAL.Product.ProductAttributeIdColumn).IsEqualTo(B);
}
q.Execute();

There may be a typo, I can't test this right now.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top