当IQueryable没有返回记录时,ToList()会抛出异常

时间:2010-12-16 20:49:39

标签: linq exception null iqueryable tolist

dataContext.Geo_Countries.Where(c => c.Name.Contains(searchKey))。ToList();

当IQueryable没有返回任何记录时,我得到一个值null异常。

解决方案是什么?

3 个答案:

答案 0 :(得分:5)

我怀疑当没有匹配时你没有遇到问题 - 我怀疑你在数据库中没有Name值的行时得到它。不管怎样,或者你正在做一些你没有向我们展示过的东西。堆栈跟踪是什么样的?

答案 1 :(得分:4)

尝试使用此代码

dataContext.Geo_Countries.Where(c => c.Name != null && c.Name.Contains(searchKey)).ToList();

答案 2 :(得分:0)

如果代码没有正确执行,则在IQueryable上调用ToList()将抛出异常。在以下示例中,如果c.Name为null,则ToList()将抛出异常:

void Main()
{
    var countries = new [] { new Country() }.AsQueryable();
    countries.Where(c => c.Name.Contains("bubba")).ToList();
}


class Country{
  public string Name { get; set; }
}