在SQL中,您可以运行ISNULL(null,''),在linq查询中如何做到这一点?
我在这个查询中有一个连接:
var hht = from x in db.HandheldAssets
join a in db.HandheldDevInfos on x.AssetID equals a.DevName into DevInfo
from aa in DevInfo.DefaultIfEmpty()
select new
{
AssetID = x.AssetID,
Status = xx.Online
};
但是我有一个位类型不可为空(xx.online)的列,如果它为空,我如何将其设置为false?
发布于 2010-08-29 01:27:29
我经常在使用序列时遇到这个问题(与离散值相反)。如果我有一个int序列,并且我想对它们求和,当列表为空时,我将收到错误消息"InvalidOperationException:不能将null值分配给System.Int32类型为不可为空值类型的成员。“
我发现我可以通过将序列转换为可空类型来解决这个问题。如果可空类型序列为空,则SUM和其他聚合运算符不会抛出此错误。
例如,像这样的东西
MySum = MyTable.Where(x => x.SomeCondtion).Sum(x => x.AnIntegerValue);
变成了
MySum = MyTable.Where(x => x.SomeCondtion).Sum(x => (int?) x.AnIntegerValue);
当没有与where子句匹配的行时,第二个函数将返回0。(第一个函数在没有匹配的行时抛出异常)。
发布于 2009-01-05 13:41:32
看起来类型是布尔型的,因此永远不能为null,默认情况下应该为false。
https://stackoverflow.com/questions/413084
复制相似问题