2009-01-24 44 views
4

如何在Linq to SQL(vb.net)中执行一个案例。Linq to SQL Case在VB.NET中何时?

在SQL它会是这样:

SELECT 
CASE 
    WHEN condition THEN trueresult 
    [...n] 
[ELSE elseresult] 
END 

我将如何做到这一点的LINQ to SQL的?

+1

接受的答案不正确,因为它与问题标题中指定的语言不符 – 2013-01-22 20:32:18

回答

4

检查发现各种查询的更多例子了这一点

var data = from d in db.tb select new { 

CaseResult = (

d.Col1 == “Case1” ? "Case 1 Rised" : 

d.Col1 == “Case2” ? "Case 2 Rised" : 

"Unknown Case") 

}; 

请注意,[?符号=然后],[:符号=或]。

+0

优秀!感谢更新! – EdenMachine 2010-05-17 20:31:36

+8

这不适用于VB.NET。需要使用If(cond,true,false) – Robert4Real 2011-02-09 14:59:54

3

我还没有试过,但你可以做一些事情,如:

Dim query = From tbl In db.Table _ 
      Select result =_ 
       If(tbl.Col1 < tbl.Col2,"Less than",_ 
        If(tbl.Col1 = tbl.Col2,"Equal to","Greater than")) 

你只需要保持嵌套IF函数来处理所有的情况。

您可以在http://msdn.microsoft.com/en-us/library/bb386913.aspx

+0

谢谢!我想这将不得不做。 – EdenMachine 2009-01-25 04:31:15

11
var data = from d in db.tb select new { 

CaseResult = If (d.Col1 = “Case1”, "Case 1 Rised", If (d.Col1 = “Case2”, "Case 2 Rised", "Unknown Case")) 

};