动态LINQ选择子句

时间:2014-07-28 11:50:15

标签: linq select if-statement linq-to-sql dynamic-linq

我正在使用Dynamic LINQ to SQL以及我的应用程序中的对象。我已经开始搜索类似于sql案例的解决方案,例如下面的那个。

SELECT case when [var] = 'Foo' then 'A' when [var] = 'Bar' then 'B' end
FROM [db].[dbo].[Table]
WHERE 1=1

如果尝试了IF(条件,真,假),如下所示,但没有成功。

var query = db.Table.AsQueryable().Where("1==1")
.Select("new(IF(var==\"Foo\",\"A\",\"B\") as TestVar)");

任何指针?

1 个答案:

答案 0 :(得分:1)

我不确定,但我认为您应该尝试以下方法:

var query = db.Table.AsQueryable().Where("1==1")
.Select("new(var==\"Foo\" ? \"A\" : var==\"Bar\" ? \"B\" : null as TestVar)");

我不知道在动态LINQ中转义字符串的规则是什么,但它应该指向正确的方向。