我在c#中使用实体框架。我需要通过ID从表中获取所有记录。我的意思是,当我得到id = 1
时,我想获得前20条记录。当我得到id = 2
时,我想从记录20到40等中获取记录。
代码:
int id = 1;
int prodId=50;
var prodList = unitOfWork.ProdTBL.GetAll().ToList().Where(p => p.prodId.Equals(prodId));
如果ID为2,我需要在prodList
中仅保留前20条记录(因为现在是id=1
),我需要prodList
来包含记录[20]至40。
更新
我不希望写GetAll()
,因为它需要很长时间(有很多记录)。但是,仅预先获取20条记录,而不是全部记录,然后再获取20条记录。
答案 0 :(得分:3)
您可以跳过(id-1)*20
,然后选择其中20
var prodList = unitOfWork.ProdTBL.Where(p => p.prodId.Equals(prodId))
.Skip((id-1)* 20).Take(20).ToList();