0

私は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;

            }
4

2 に答える 2

0

使用時に表示されるメッセージorderBy("fieldname asc/desc")

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

orderBy使用しようとするとlambda expression、正常に動作し、エラー メッセージは表示されません。

db.persons.OrderBy(x=>x.FieldName)
于 2012-08-28T02:18:28.747 に答える
0

これを試して、短い式/フィールド名の前に「it」を追加してください:

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

于 2012-08-29T02:43:51.257 に答える