在LINQ中不能多次枚举查询结果

时间:2014-07-29 18:04:05

标签: c# linq

此代码:

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

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

    return results.Count();
}

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

1 个答案:

答案 0 :(得分: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();
}