这是我的代码
searchDataContext db = new searchDataContext();
var query = (from p in db.SearchFirst(city, area)
select new
{
ID = p.Id,
Address = p.address,
Level = p.agahilevel
});
int count =query.Count();
// records
var q = query.Skip(Convert.ToInt32(start)).Take(Convert.ToInt32(width));
if (q.Count() > 0)
{
int index = 0;
str += "[";
foreach (var row in q)
{
if (index == 0)
Run Code Online (Sandbox Code Playgroud)
我在这段代码中有错误
The query results cannot be enumerated more than once.
Run Code Online (Sandbox Code Playgroud)
请检查并回答我.
bas*_*h.d 11
您不能使用缓存查询并多次迭代它们...
制作List<T>它并再次尝试
var q = query.ToList(); // work on this
Run Code Online (Sandbox Code Playgroud)
实现您的查询:
var addresses = (from p in db.SearchFirst(city, area)
select new
{
ID = p.Id,
Address = p.address,
Level = p.agahilevel
})
.Skip(Convert.ToInt32(start))
.Take(Convert.ToInt32(width))
.ToList();
Run Code Online (Sandbox Code Playgroud)
然后用Enumerable.Any它来检查它是否包含元素:
if(addresses.Any())
{
int index = 0; // ...
}
Run Code Online (Sandbox Code Playgroud)