我想在 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:对不起我的英语。
如果您的值类型是字符串,则可以使用以下表达式:
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);
参考:
尝试以下查询,这将对您有所帮助。
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")