首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >LINQ中SQL ISNULL的等价物?

LINQ中SQL ISNULL的等价物?
EN

Stack Overflow用户
提问于 2009-01-05 13:25:51
回答 2查看 124.2K关注 0票数 51

在SQL中,您可以运行ISNULL(null,''),在linq查询中如何做到这一点?

我在这个查询中有一个连接:

代码语言:javascript
复制
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?

EN

回答 2

Stack Overflow用户

发布于 2010-08-29 01:27:29

我经常在使用序列时遇到这个问题(与离散值相反)。如果我有一个int序列,并且我想对它们求和,当列表为空时,我将收到错误消息"InvalidOperationException:不能将null值分配给System.Int32类型为不可为空值类型的成员。“

我发现我可以通过将序列转换为可空类型来解决这个问题。如果可空类型序列为空,则SUM和其他聚合运算符不会抛出此错误。

例如,像这样的东西

代码语言:javascript
复制
MySum = MyTable.Where(x => x.SomeCondtion).Sum(x => x.AnIntegerValue);

变成了

代码语言:javascript
复制
MySum = MyTable.Where(x => x.SomeCondtion).Sum(x => (int?) x.AnIntegerValue);

当没有与where子句匹配的行时,第二个函数将返回0。(第一个函数在没有匹配的行时抛出异常)。

票数 2
EN

Stack Overflow用户

发布于 2009-01-05 13:41:32

看起来类型是布尔型的,因此永远不能为null,默认情况下应该为false。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/413084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档