Сопоставление таблиц соединения в Entity Framework

Я пытаюсь подключить таблицы членства asp.net к веб-сайту asp.mvc 3. Я следил за учебником из книги Стива Сандерсона «Pro ASP.NET MVC 3 Framework» для спортивного магазина и применял его к таблицам, созданным из exe-файла членства.

Итак, у меня есть класс пользователя, который выглядит так:

namespace Domain.Entities
{
    public class User
    {
        public Guid UserId { get; set; }
        public string UserName { get; set; }
        public DateTime LastActivityDate;
        public virtual ICollection<Role> Roles { get; set; }
    }

    public class Role
    {
        public Guid RoleId { get; set; }
        public string RoleName { get; set; }
    }
}

и класс контекста, который выглядит так:

public class EFDbContext : DbContext
{
    public DbSet<User> Users { get; set; }
    public DbSet<Role> Roles { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<User>().ToTable("aspnet_users");
        modelBuilder.Entity<Role>().ToTable("aspnet_roles");
    }
}

, но я получаю сообщение об ошибке, потому что предполагаю, что он ищет соединение между этими двумя таблицами, хотя на самом деле существует соединить таблицу ( aspnet_UsersInRoles ) между ними, чтобы избежать связи "многие ко многим", когда я пытаюсь сослаться на ролевую модель пользователя, например:

var test = _repository.Users.FirstOrDefault().Roles.Count();

{"Недопустимое имя столбца 'User_UserId'. \ r \ nНеверное имя столбца 'User_UserId'. \ R \ nНеверное имя столбца 'User_UserId'. "}

есть ли способ сопоставить таблицу вместе с помощью объединенной таблицы с использованием структуры сущностей? Лучше просто добавить новые данные сущности ADO.NET модель и позволить Visual Studio просто перепроектировать базу данных?

6
задан GrahamJRoy 16 January 2012 в 14:47
поделиться