Zapytanie Linq

0

Hej, nie mam pojęcia jak zmodyfikować kod query aby osiągnąć coś takiego :

 List<Books> listaKsiazek = new List<Books>();      
        foreach (int a in listaKsiazekID)
        {
            var query = (from x in db.Books where x.BookID == a select x).ToList();
            listaKsiazek = query.ToList();
        }

W skrócie listaKsiazekID - zawiera elementy typu int (ID książek).
listaKsiazek - zawiera obiekty Book i poprzez foreach chcę dodać do listaKsiazek wszystkie obiekty Book zgodne z warunkiem where x.BookID == a select x. Ale zwraca mi tylko jeden ostatni obiekt Book, nie wiem jak zmodyfikować zapytanie query, aby zawierało iterację (foreach) z warunkiem

1

Zwraca ostatni, ponieważ w każdej iteracji nie dodajesz książki do listy, a nadpisujesz całą listę. Musiałbyś użyć AddRange, albo Add i zamienić ToList na Single. Natomiast można to zrobić prościej jednym zapytaniem:

List<Books> listaKsiazek = (from x in db.Books where listaKsiazekID.Contains(x.BookID) select x).ToList()

1 użytkowników online, w tym zalogowanych: 0, gości: 1