2012-08-01 73 views
0

我正在使用EF 4.1,當我使用以下代碼時,出現錯誤:'id'無法解析..?

'id'無法在當前範圍或上下文中解析。確保所有引用的變量都在範圍內,所需的模式已加載,並且名稱空間被正確引用。近簡單的標識符,第6行,第1列

C#

foreach (Person Profile in _ProfilesRepository.GetProfiles(filterExpression.ToString(), sortingName, request.SortingOrder.ToString(), request.PageIndex, request.RecordsCount, request.PagesCount.HasValue ? request.PagesCount.Value : 1)) 
       { 
//the error happens here when it comes back from the GetProfiles call : (
        response.Records.Add(new JqGridRecord(Convert.ToString(Profile.ID), new List<object>() 
        { 
         Profile.Name, 
         Profile.JobTitle, 
         Profile.Type 
        })); 
       } 


    public IQueryable<Person> GetProfiles(string filterExpression, string sortExpression, string sortDirection, int pageIndex, int pageSize, int pagesCount) 
      { 
       if (!String.IsNullOrWhiteSpace(filterExpression)) 
        return db.persons.Where(filterExpression).OrderBy(sortExpression + " " + sortDirection).Skip(pageIndex * pageSize).Take(pageSize); 
       else 
        return db.persons.OrderBy(sortExpression + " " + sortDirection).Skip(pageIndex * pageSize).Take(pagesCount * pageSize); 
        //return db.persons; 

      } 
+0

我敢肯定,這發生在'GetProfiles'但是當你遍歷其結果揭曉。 'filterExpression'中有什麼? – 2012-08-02 22:29:03

回答

0

使用orderBy("fieldname asc/desc")

db.persons.OrderBy(sortExpression + " " + sortDirection) 

噹噹我嘗試使用orderBylambda expression它的工作正常使用出現信息,沒有錯誤消息。

db.persons.OrderBy(x=>x.FieldName) 
0

試試這個,添加「它」你的短表達/字段名前:

OrderBy("it."+sortExpression + " " + sortDirection).Skip(pageIndex * PageSize).Take(pageSize); OrderBy("it."+sortExpression + " " + sortDirection).Skip(pageIndex * pageSize).Take(pagesCount * pageSize);