5

이 질문에는 이미 답변이 있습니다.

이것은 내 코드이다.

 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)

이 코드에 오류가 있습니다.

The query results cannot be enumerated more than once.

저를 확인하고 저에게 응답하십시오.


3 답변


8

귀하의 질의 구체화 :

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();

그런 다음Enumerable.Any요소가 포함되어 있는지 확인합니다.

if(addresses.Any())
{
    int index = 0; // ...
}


10

캐싱 된 쿼리를 사용하여 여러 번 반복 할 수는 없습니다 ...

을 만들다List<T>그것을 다시 시도해보십시오.

var q = query.ToList(); // work on this


5

추가하는 경우.ToList()귀하의 질문에 귀하의 문제가 해결 될 것입니다.

연결된 질문


관련된 질문

최근 질문