我想在linq中将其设为sql
select isnull(x.COD, '1') as 'NCOD'
from table x
我试过这个。
From x In table
select NCOD = x.COD ?? '1';
我正在使用LINQPad 4和VB Expression。但LINQPAd说我不能用?表达(用西班牙语表示没有用的卡特克?'')
有什么想法吗?
PD:对不起我的英语。答案 0 :(得分: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);
参考:
答案 1 :(得分:-1)
尝试以下查询,这对您有所帮助。
var InvoiceNo = dbContext.table.where(x => (int?)x.ICOD) ?? "NCOD";
此处, ?? 仅适用于nullable int int?
你是一个vb.net用户,而不是你应该使用以下代码,这对你有帮助...
Dim InvoiceNo = If(dbContext.table.where(Function(x) DirectCast(x.ICOD, System.Nullable(Of Integer))), "NCOD")