当 IQueryable 返回无记录时 ToList() 抛出异常

发布于 2024-10-08 04:23:18 字数 183 浏览 3 评论 0原文

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

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

解决办法是什么?

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

when the IQueryable returns no records, I get a value null exception.

What is the solution?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

空宴 2024-10-15 04:23:18

我怀疑当没有匹配项时您不会遇到问题 - 我怀疑当数据库中有一行没有 Name 值时您会遇到问题。要么是这样,要么你正在做一些你没有向我们展示过的其他事情。堆栈跟踪是什么样的?

I suspect you don't get the problem when there are no matches - I suspect you get it when there's a row in your database with no Name value. Either that, or you're doing something else which you haven't shown us. What does the stack trace look like?

著墨染雨君画夕 2024-10-15 04:23:18

尝试使用此代码

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

try to use this code

dataContext.Geo_Countries.Where(c => c.Name != null && c.Name.Contains(searchKey)).ToList();
孤云独去闲 2024-10-15 04:23:18

如果代码未正确执行,在 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; }
}

Calling ToList() on IQueryable will throw an exception if code doesn't properly execute. In the following example, ToList() will throw an exception if c.Name is null:

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


class Country{
  public string Name { get; set; }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文