2

我想在 linq to sql 中做这个

select isnull(x.COD, '1') as 'NCOD'
from table x

我试过这个。

From x In table
select NCOD = x.COD ?? '1';

我正在使用 LINQPad 4 和 VB 表达式。但 LINQPAd 说我不能使用?表达(西班牙语中没有 se puede usar aquí el carácter '?')

任何想法?

PD:对不起我的英语。

4

2 回答 2

1

如果您的值类型是字符串,则可以使用以下表达式:

result = from x in values select IF(String.IsNullOrEmpty(x),"No value",x);

如果它是可空类型(如 int?、Double?、SomeClass?):

result = from x in values select IF(x.HasValue,x,1);

参考:

于 2012-11-16T12:20:46.267 回答
-1

尝试以下查询,这将对您有所帮助。

var InvoiceNo = dbContext.table.where(x => (int?)x.ICOD) ?? "NCOD";

在这里,??仅适用于可为空的int?

而且您是 vb.net 用户,您应该使用以下代码,这将对您有所帮助...

Dim InvoiceNo = If(dbContext.table.where(Function(x) DirectCast(x.ICOD, System.Nullable(Of Integer))), "NCOD")
于 2012-11-16T12:16:56.573 回答