在Linq合并相当于

时间:2014-03-25 22:52:51

标签: c# linq postgresql

我需要知道Linq中PostgreSQL coalesce()的等效内容。我读到它是??运营商(source),但这似乎无法运作。

我有一个将在linq中运行的字符串查询。 where子句如下所示:

WHERE
ToLower((hnHN.value ?? String.Empty) + ' ' + (hnSN.value ?? String.Empty)  + ' ' + (hnSS.value ?? String.Empty)  + ' ' 
        + (hnAN.value ?? String.Empty)  + ' ' +  (hnC.value ?? String.Empty)  + ' ' + (hnS.value ?? String.Empty)  + ' ' 
        + (hnZ.value ?? String.Empty) + ' ' +  (hnZ4.value ?? String.Empty) ) LIKE + ToLower('%test%')

当我使用此where子句作为linq查询运行字符串时,我收到以下错误:

The query syntax is not valid. Near term '?', line 26, column 22.

想法?

编辑为了消除混淆,我们通过字符串复制linq查询。方法完成后,它将返回一个我们作为linq查询运行的字符串。代码:

sb.AppendLine(string.Format(@"ToLower((hnHN.value ?? String.Empty) + ' ' + (hnSN.value ?? String.Empty)  + ' ' + (hnSS.value ?? String.Empty)  + ' ' 
        + (hnAN.value ?? String.Empty)  + ' ' +  (hnC.value ?? String.Empty)  + ' ' + (hnS.value ?? String.Empty)  + ' ' + (hnZ.value ?? String.Empty)  +
        ' ' +  (hnZ4.value ?? String.Empty) ) LIKE + ToLower('%{1}%') AND", name, ((string)val).Trim()));

0 个答案:

没有答案