我正在使用EF 4.1,当我使用以下代码时出现错误:
无法在当前范围或上下文中解析'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 :(得分:0)
使用orderBy("fieldname asc/desc")
db.persons.OrderBy(sortExpression + " " + sortDirection)
当我尝试使用orderBy
使用lambda expression
时,它正常工作,没有错误消息。
db.persons.OrderBy(x=>x.FieldName)
答案 1 :(得分:0)
试试这个,在短表达式/ fieldname之前添加“it”:
OrderBy(“it。”+ sortExpression +“”+ sortDirection).Skip(pageIndex * 每页)。取(pageSize的); OrderBy(“it。”+ sortExpression +“”+ sortDirection).Skip(pageIndex * pageSize).Take(pagesCount * pageSize);