получить конкретный номер строки из таблицы, используя лямбда-выражение C # - PullRequest
0 голосов
/ 11 ноября 2018

Я использую Entity FrameWork в c #. Мне нужно получить все записи из таблицы по идентификатору. Я имею в виду, когда я получаю 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));

Мне нужно, чтобы в prodList были только первые 20 записей (потому что теперь id=1), если идентификатор будет 2, мне нужно prodList, чтобы содержать записи [20] - 40.

обновление

Я не хочу писать GetAll(), потому что это занимает много времени (записей много). Но предварительно получите только двадцать записей, а не все записи, а затем получите их двадцать.

1 Ответ

0 голосов
/ 11 ноября 2018

Вы можете пропустить (id-1)*20, а затем взять 20 из них

var prodList =  unitOfWork.ProdTBL.Where(p => p.prodId.Equals(prodId))
         .Skip((id-1)* 20).Take(20).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...