我正在使用 LINQ to SQL 在 Sql server 2008 中获取 FullTextSearch 存储过程的搜索结果。我将过程从服务器资源管理器拖到设计器中,并获得了使用适当的返回类型和参数创建的方法。现在的问题是,我需要获取调用此方法的结果的计数,因此使用我的存储库方法(它将调用 Sproc 方法并将结果作为 IQueryable 返回)我进行了以下调用。
var result = repository.FullTextSearch(searchText);
int resultsCount = result.Count();
var ret = result.Skip((pageNumber - 1) * PageSize).Take(PageSize).ToList();
这段代码每次我尝试运行它时都会生成一个 InvalidOperationException,异常说(是的,你猜对了!)“查询结果不能被枚举多次。”
为 Sproc 生成的方法返回 ISingleResult,它应该是 OK AFAIK。我需要在我的视图上支持分页,所以我需要知道总页数,只有在我可以获得所有项目的计数时,这(再次是 AFAIK)才有可能。
伙计们,我在这里错过了什么?