Подзапрос Entity Framework

Ребята, я новичок в Entity Framework, и у меня возникла проблема, которую я пытался решить довольно давно. В основном у меня есть 4 объекта: пользователи, группы, книги и списки для чтения. Пользователь может присоединиться к группе, и группа содержит книги - определяется ReadList. Я пытаюсь отобразить список книг для определенной группы, SQL выглядит так:

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

Я определяю GroupID, по которому выполняется поиск, запрашивая текущего пользователя из UserRepository, и в настоящее время метод «получить книги по группе» выглядит так: this:

// 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;
}

Очевидно, это временная мера и возвращает только одну книгу, но я включил ее для справки. Любая помощь или совет здесь будут очень благодарны.

Спасибо

10
задан Ladislav Mrnka 26 March 2011 в 15:02
поделиться