Linq null error



为我的网站编码一个统计页面。我正在使用带有实体框架的Linq。我有几个查询可以工作,但不能处理null异常。只是想知道是否有一种方法可以绕过它,而不必重新调整编码方法。

        var countriesElse = db.Profiles
            .GroupBy(av => av.Country)
            .Select(g => new { Country = g.Key, Count = g.Count() });
        var otherCount = countriesElse
            .Where(x => x.Country != "US" && x.Country != "CA").FirstOrDefault();
        ViewBag.otherCount = otherCount.Count;

这会抛出一个null错误,因为where子句没有任何可供选择的内容,但我将需要这个查询以备将来使用,因为它最终会被使用。

干杯

也许你想要这样的东西:

if(otherCount != null)
   ViewBag.otherCount = otherCount.Count;
else ViewBag.otherCount = 0;

如果不尝试访问查询中null对象的属性或方法,则SelectWhere不会抛出NullReferenceException。你的问题是关于最后一行。

此外,您还可以使用带有谓词:的FirstOrDefault简化代码

 var profile = db.Profiles
        .GroupBy(av => av.Country)
        .Select(g => new { Country = g.Key, Count = g.Count() })
        .FirstOrDefault(x => x.Country != "US" && x.Country != "CA");
ViewBag.otherCount = profile== null ? 0 : profile.Count;

相关内容

  • 没有找到相关文章

最新更新