Можно ли применить к include() фильтры take() и skip()

86
21 декабря 2021, 13:40

В принципе в названии вопрос ясен, есть список, у элемента списка есть еще список, из бд мне нужно получить ограниченное количество элементов из списка элемента, сори за тофтологию, надеюсь понятно объяснил, так вот, если через инклуд нельзя, то как вообще это делается? Проект Asp.net core

Answer 1

в общем получить юзера с ограниченным количеством его друзей у меня получилось только при помощи сторонней библиотеки, а именно - EntityFramework-Plus и ее метода IncludeFilter, в итоге я ведь ничего не гружу лишнего? В результате получаю юзера и "size" друзей.

var currentUser = db.Users
                .IncludeFilter(x => x.UserFriends
                .Where(z => z.UserId == id)
                .Take(size)
                .Select(c => c.Friend))
                .Where(x => x.Id == id)
                .ToList()
                .FirstOrDefault();

А потом меня ткнули носом в то, на сколько просто это было сделать вот так:

var currentUser = db.Users.Where(x => x.UserFriends.Any(z => z.FriendId == id)).Skip((page - 1) * size)
                .Take(size).ToList();
READ ALSO
Как ускорить парсинг JSON файла?

Как ускорить парсинг JSON файла?

Пишу парсер для steam инвентаря

184
Как правильно подключить скрипты к WordPress?

Как правильно подключить скрипты к WordPress?

У меня есть скрипты, которые я подключаю в файле functionsphp

151
настроить Apache для yii2 starter kit

настроить Apache для yii2 starter kit

использую OpenServer на windows, установил yii2-starter-kit, но не могу настроить Apache в htaccess

199
Запрос insert PDO PHP

Запрос insert PDO PHP

Хочу записать все $value в таблицу users столбец lastnameКак?

161