Как сделать запрос на основе результата предыдущего объекта? Entity Framework - PullRequest
0 голосов
/ 28 апреля 2020

Я очень зациклен на получении нужной информации из БД. Таким образом, в основном проблема заключается в том, что мне нужно добавить в моем выражении where замыкание, чтобы проверить, что он только извлекает реальную и необходимую информацию. нужно проверить в переменной post. Тем не менее, я попытался с foreach, но здесь ничего не работает. Может кто-нибудь помочь мне с этим вопросом?

1 Ответ

0 голосов
/ 28 апреля 2020

Короткая версия заключается в том, что вы можете изменить эту строку ошибки, которую вы отметили выше, на что-то вроде .Where(u => followersIds.Contains(u.CaUserId), которая будет возвращать все сущности с CaUserID, который содержится в переменной followIds, однако это все еще может привести к значительному возвращению больший набор данных, чем вам на самом деле нужно, и будет довольно большой запрос. (Вам также может понадобиться немного проверить синтаксис, стреляя из памяти без открытой IDE). Вы включили много связанных сущностей в этот запрос выше, так что, возможно, вам лучше использовать запрос Select против запроса Where , который будет загружать только те свойства, которые вам нужны от каждого объекта.

Взгляните на эту статью Джона Смита , написавшего книгу "Ядро Entity Framework в действии", где он рассказывает об использовании запросов Select и DTO для получения только того, что вам нужно. , Скорее всего, вам не нужно каждое свойство каждого объекта, который вы запрашиваете в запросе у вас выше. (Может быть, вы знаете, что я знаю: p) Использование этого может помочь вам получить что-то гораздо более эффективное для нужного набора данных. Больше строк кода в запросе, но потенциально лучшая производительность на стороне сервера и меньший объем памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...