Estoy usando Dynamic LINQ to SQL y también objetos en mi aplicación. Busqué en Google una solución similar a un caso sql, como la siguiente.
SELECT case when [var] = 'Foo' then 'A' when [var] = 'Bar' then 'B' end
FROM [db].[dbo].[Table]
WHERE 1=1
Si ha intentado con IF (condición, verdadero, falso) como el siguiente pero sin éxito.
var query = db.Table.AsQueryable().Where("1==1")
.Select("new(IF(var==\"Foo\",\"A\",\"B\") as TestVar)");
Cualquier puntero?
No estoy seguro, pero creo que deberías probar lo siguiente:
var query = db.Table.AsQueryable().Where("1==1")
.Select("new(var==\"Foo\" ? \"A\" : var==\"Bar\" ? \"B\" : null as TestVar)");
No sé cuáles son las reglas para escapar de cadenas en LINQ dinámico, pero debería apuntarlo en la dirección correcta.