Entity Framework Mapeando para a tabela de Pesquisa

Tenho 3 tabelas que precisam ser mapeadas com o Entity Framework e não tenho certeza da maneira correta de fazer isso. Aqui estão minhas três entidades:

public class User
{
   [Key] 
   public int user_id {get; set;}
   public string user_name {get; set;}

   public virtual List<Role> roles {get; set;}
}

public class Role
{
   [Key] 
   public int role_id {get; set;}

   public string role_name {get; set;}
}

public class User_Role
{
   [Key] 
   public int user_role_id {get; set;}

   public int user_id {get; set;}
   public int role_id {get; set;}
}

Observe que a entidade User_Role representa apenas uma tabela de pesquisa para vincular muitas funções a um único usuári

Com o SQL, eu faria algo como:

SELECT User.user_name, Role.role_name FROM User INNER JOIN User_Role ON User_Role.user_id = User.user_id INNER JOIN Role ON Role.role_id = User_Role.role_id WHERE User.user_id = 123

Sou relativamente novo no Entity Framework, por isso não tenho certeza da melhor maneira de lidar com isso usando o EF4 DbContext (e possivelmente a Fluent API?), Mas espero que seja bastante direto.

Desde já, obrigado

questionAnswers(1)

yourAnswerToTheQuestion