我需要知道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()));