写Li​​nq时查询我在take和skip中提到的返回类型

时间:2017-08-01 10:34:27

标签: c# linq

在这里,我写了一个简单的Linq查询获取跳过并从服务器中获取记录指导我在我的ReturnType中提到的

   int pager = Convert.ToInt32(pagenumber);
        int totalRecDisplay = 10;
        var TotlaRecords = (from n in db.Employee
                            orderby n.Emp_Id
                            select n);

        var pagination = from e in TotlaRecords.Skip((pager - 1) * 10).Take(totalRecDisplay)
                          select new SomeClass
                          {
                              countRec = TotlaRecords.Count(),
                              Entity = e
                          };
        return pagination;

     }

SomeOtherClass

 public class SomeClass
    {
        public int countRec { get; set; }
        public Employee Entity { get; set; }
    }

1 个答案:

答案 0 :(得分:1)

目前,您正在返回IQueryable<SomeClass>

你可能不想要那样。 (但你可能 - 这取决于你在调用程序中用它做什么,但我们假设你没有)。

你最好还是退回一份清单。

public List<SomeClass> GetPage(string pagenumber)
{
    int pager = Convert.ToInt32(pagenumber);
    int totalRecDisplay = 10;
    var TotlaRecords = (from n in db.Employee
                        orderby n.Emp_Id
                        select n);

    var count = TotlaRecords.Count()

    var pagination = from e in TotlaRecords
                                .Skip((pager - 1) * totalRecDisplay)
                                .Take(totalRecDisplay)
                 select new SomeClass
                 {
                     countRec = count,
                     Entity = e
                 };
    return pagination.ToList();

}

注意:我更换了一个硬编码的&#34; 10&#34;,并将记录计数到仅执行一次的位置。