Почему я получаю только одно значение из таблицы базы данных, используя where с параметрами? - PullRequest
0 голосов
/ 26 мая 2019

У меня есть таблица с именем "Registered_User", которая содержит два атрибута: 1. FavGenre 2. id_User.

У одного пользователя может быть несколько любимых жанров.Табличные данные выглядят так:

 FavGenre  |  id_User
 1         |  2
 3         |  2
 5         |  2

Что я в основном пытаюсь сделать, так это получить все любимые жанры пользователя с ID=2.Таким образом, мой ожидаемый доход в этом случае будет числа 1, 3 and 5.

Я пытаюсь использовать эту последовательность, чтобы получить такой результат: var genres = db.Registered_User.Where(x => x.id_User == 2).ToList(); return View(genres);

Но результат, который я получаю:

Genre |  User
1        2
1        2
1        2

Очевидно, что это не правильный результаткажется, что он принимает только первое значение FavGenre и просто повторяет его.

Таким образом, мой вопрос был бы: последовательность, которую я использую, не подходит для моих целей?Или кажется, что в другом месте могут быть какие-то ошибки (я думал, что, возможно, что-то не так с базой данных или самой таблицей)?

1 Ответ

0 голосов
/ 26 мая 2019

Это потому, что условие, которое вы задали «Где (x => x.id_User == 2)», вернет первые результаты после выполнения условия и не будет смотреть дальше. То есть, поскольку условие удовлетворяет результату, что «user = 2» равен «genre = 1», он будет только возвращать это. Таким образом, вы должны использовать цикл, чтобы проверить все соответствующие значения для «user = 2». Я надеюсь, что это было полезно. : 3

...