2012-08-01 42 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);