【问题标题】:The query results cannot be enumerated more than once in LINQ [duplicate]查询结果不能在 LINQ 中多次枚举 [重复]
【发布时间】:2014-07-29 18:04:04
【问题描述】:

这段代码:

using (DataClassesDataContext db = new DataClassesDataContext())
{
    IEnumerable<view_subject> results = db.ExecuteQuery<view_subject>(query);

    if (dataBind)
    {
        GridViewSearchResults.DataSource = results;
        GridViewSearchResults.DataBind();
    }

    return results.Count();
}

抛出异常:查询结果不能被枚举多次。我不明白为什么?有人可以帮帮我吗?

【问题讨论】:

标签: c# linq


【解决方案1】:

使用 ToList() 将从数据库中检索所有记录,现在它适用于数据而不是数据库查询。

using (DataClassesDataContext db = new DataClassesDataContext())
{
    List<view_subject> results = db.ExecuteQuery<view_subject>(query).ToList();

    if (dataBind)
    {
        GridViewSearchResults.DataSource = results;
        GridViewSearchResults.DataBind();
    }

    return results.Count();
}

【讨论】:

  • 在这里解释一下你做了什么以及为什么它解决了这个问题会很有帮助。
  • @AndrewBarber 你打败了我 :) 。我也添加了解释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多