Mapeando muitos para muitos relacionamentos

Estou com alguns problemas para conseguir que o Entity Framework lide com muitos relacionamentos no meu esquema de dados. Aqui está o meu modelo:

public class User
{
    public int UserId { get; set; }
    public int Username { get; set; }
    public IEnumerable<Customer> Customers { get; set; }
    ...
}

public class Customer
{
    public int CustomerId { get; set; }
    ...
}

public class CustomerUser
{
    public int CustomerUserId { get; set; }
    public int CustomerId { get; set; }
    public int UserId { get; set; }
    public DateTime CreatedTimestamp { get; set; }
    ...
}

Aqui está o mapeamento:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<User>().HasKey(u => u.UserId).ToTable("Users");
        modelBuilder.Entity<Customer>().HasKey(c => c.CustomerId).ToTable("Customer");
        modelBuilder.Entity<CustomerUsers>().HasKey(cu => cu.CustomerUserId).ToTable("CustomerUsers");

        modelBuilder.Entity<CustomerUsers>()
            .HasRequired(cu => cu.User)
            .WithRequiredDependent()
            .Map(m =>
                {
                    m.ToTable("Users");
                    m.MapKey("CustomerUsers.UserId");
                });
}

Meu banco de dados possui uma tabela Usuários, Clientes e UsuáriosUsuários com colunas que correspondem ao model

Estou tentando executar a seguinte consulta:

result = (from u in context.Users
                      join customerUsers in context.CustomerUsers on u.UserId equals customerUsers.User.UserId
                      join customers in context.,Customers on customerUsers.CustomerId equals customers.CustomerId into ps
                      select new
                      {
                          User = u,
                          Customers = ps
                      }).ToList().Select(r => { r.User.Customers = r.Customers.ToList(); return r.User; });

Quando executo o código, obtenho o seguinte erro:

The Column 'CustomerUserId' specified as part of this MSL does not exist in MetadataWorkspace

Alguém pode ver o que há de errado com minha abordagem?

Obrigado

Devo observar que estou intencionalmente tentando não incluir uma referência à tabela CustomerUsers da classe Customer ou User. Na maioria das vezes, a carga útil da tabela CustomerUsers não é importante, apenas quais clientes estão associados a quais usuários. Existem alguns cenários de relatório em que as informações adicionais na tabela de junção são necessárias, mas como essa não é a situação típica, eu gostaria de evitar desorganizar os modelos tendo esse indireto adicional.

questionAnswers(4)

yourAnswerToTheQuestion