RoleManager.create возвращается с ошибкой, несмотря на переопределение - PullRequest
0 голосов
/ 04 сентября 2018

Я только что обновил свою таблицу AspNetRoles с помощью OnModelCreating следующим образом:

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

        var role = modelBuilder.Entity<IdentityRole>()
            .ToTable("AspNetRoles");
        role.Property(r => r.Name)
        .IsRequired()
        .HasMaxLength(256)
        .HasColumnAnnotation("Index",new IndexAnnotation(new IndexAttribute("RoleNameIndex") { IsUnique = false } ));
    }

Я установил партию IsUnique как ложную.

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

    public bool Save(SaveRolesDetailsViewModel Input)
    {
        bool result = false;
        AspApplicationRoles data = new AspApplicationRoles();
        var store = new ApplicationRoleStore(new ApplicationDbContext());
        var manager =new ApplicationRoleManager(store);
        try
        {
            var role = new AspApplicationRoles
            {
                Id = Guid.NewGuid().ToString(),
                Name = Input.RoleName,
                ApplicationId = Input.ApplicationId
            };
            var res = manager.Create(role);
            if (res.Succeeded)
            {
                var add = dbContext.AspApplicationRoles.Add(role);
                result = true;
            }
            else
            {
                result = false;
            }
        }
        catch (Exception e)
        {
            logger.Error(e, AspNetEventLogs.Error);
        }
        return result;
    }

Как заставить таблицу AspNetRoles принимать одинаковые имена?

...