Sous-requête Entity Framework

Les gars, je suis nouveau sur Entity Framework et je vais avoir un bt d'un problème que j'essaie de résoudre depuis un certain temps. Fondamentalement, j'ai 4 entités: les utilisateurs, les groupes, les livres et les readingLists. Un utilisateur peut joindre à un groupe et un groupe qui comprend des livres défini par readingList. J'essaie d'afficher une liste de livres pour un groupe spécifique, le SQL ressemble à ceci:

SELECT * FROM Books b
WHERE b.Id IN (
    SELECT BookID FROM ReadingList rl
        WHERE rl.GroupID = '3')

- Je déterminer l'id de groupe de recherche en cours par l'interrogation de l'utilisateur actuel à partir d'un UserRepository et actuellement le 'obtenir des livres par le groupe" la méthode est à la recherche comme ceci:

//Get books by group
public IQueryable<Book> GetGroupBooks(string username)
{
    UserRepository userRepository = new UserRepository();
    int groupId = userRepository.GetUserGroupId(username);

    IQueryable<Book> q = from b in entities.Books 
                         where b.Id == 7 //temp - these values should be determined by 
                                         //rl in entites.ReadingList select rl.BookID where r.GroupID == groupID
                         select b;

    return q;
}

Évidemment, c'est une mesure temporaire et retourne seulement un livre, mais j'ai compris pour référence. L'aide ou des conseils seraient appréciés.

Grâce

source d'informationauteur Apollo | 2011-03-26