Я пытаюсь подключить таблицы членства 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 просто перепроектировать базу данных?