Невозможно использовать таблицу AspNetUserRoles для типа сущности IdentityUserRole<string>, поскольку она используется дC#

Место общения программистов C#
Ответить
Anonymous
 Невозможно использовать таблицу AspNetUserRoles для типа сущности IdentityUserRole<string>, поскольку она используется д

Сообщение Anonymous »

Я получаю ошибку ниже

Невозможно использовать таблицу "AspNetUserRoles" для типа сущности
"IdentityUserRole", поскольку она используется для типа сущности
"AspNetUserRole (Dictionary)" и, возможно, для других
типов сущностей, но связующих отношений нет. Добавьте внешний ключ
в «IdentityUserRole» в свойствах первичного ключа и
указав на первичный ключ в другом типе сущности, сопоставленном с
«AspNetUserRoles».

Я использую подход «сначала база данных». Пожалуйста, найдите мой файл контекста БД ниже: -

Код: Выделить всё

public partial class EmployeeContext : IdentityDbContext
{
public EmployeeContext()
{
}

public EmployeeContext(DbContextOptions options)
: base(options)
{
}

public virtual DbSet AspNetRoles { get; set; }

public virtual DbSet AspNetRoleClaims { get; set; }

public virtual DbSet AspNetUsers { get; set; }

public virtual DbSet AspNetUserClaims { get; set; }

public virtual DbSet AspNetUserLogins { get; set; }

public virtual DbSet AspNetUserTokens { get; set; }

public virtual DbSet TblEmployeeSalaries { get; set; }

public virtual DbSet Tblemployees { get; set; }

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{

}

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity(entity =>
{
entity.HasIndex(e => e.NormalizedName, "RoleNameIndex")
.IsUnique()
.HasFilter("([NormalizedName] IS NOT NULL)");

entity.Property(e => e.Name).HasMaxLength(256);
entity.Property(e => e.NormalizedName).HasMaxLength(256);
});

modelBuilder.Entity(entity =>
{
entity.HasIndex(e => e.RoleId, "IX_AspNetRoleClaims_RoleId");

entity.HasOne(d => d.Role).WithMany(p => p.AspNetRoleClaims).HasForeignKey(d => d.RoleId);
});

modelBuilder.Entity(entity =>
{
entity.HasIndex(e => e.NormalizedEmail, "EmailIndex");

entity.HasIndex(e => e.NormalizedUserName, "UserNameIndex")
.IsUnique()
.HasFilter("([NormalizedUserName] IS NOT NULL)");

entity.Property(e => e.Email).HasMaxLength(256);
entity.Property(e => e.NormalizedEmail).HasMaxLength(256);
entity.Property(e => e.NormalizedUserName).HasMaxLength(256);
entity.Property(e => e.UserName).HasMaxLength(256);

entity.HasMany(d => d.Roles).WithMany(p => p.Users)
.UsingEntity(
"AspNetUserRole",
r => r.HasOne().WithMany().HasForeignKey("RoleId"),
l => l.HasOne().WithMany().HasForeignKey("UserId"),
j =>
{
j.HasKey("UserId", "RoleId");
j.ToTable("AspNetUserRoles");
j.HasIndex(new[] { "RoleId" }, "IX_AspNetUserRoles_RoleId");
});
});

modelBuilder.Entity(entity =>
{
entity.HasIndex(e => e.UserId, "IX_AspNetUserClaims_UserId");

entity.HasOne(d => d.User).WithMany(p => p.AspNetUserClaims).HasForeignKey(d => d.UserId);
});

modelBuilder.Entity(entity =>
{
entity.HasKey(e => new { e.LoginProvider, e.ProviderKey });

entity.HasIndex(e => e.UserId, "IX_AspNetUserLogins_UserId");

entity.HasOne(d => d.User).WithMany(p => p.AspNetUserLogins).HasForeignKey(d => d.UserId);
});

modelBuilder.Entity(entity =>
{
entity.HasKey(e => new { e.UserId, e.LoginProvider, e.Name });

entity.HasOne(d => d.User).WithMany(p => p.AspNetUserTokens).HasForeignKey(d => d.UserId);
});

modelBuilder.Entity(entity =>
{
entity.ToTable("tblEmployeeSalary");

entity.HasOne(d => d.Employee).WithMany(p => p.TblEmployeeSalaries)
.HasForeignKey(d =>  d.EmployeeId)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("FK_tblEmployeeSalary_tblemployee");
});

modelBuilder.Entity(entity =>
{
entity.HasKey(e => e.Id).HasName("tblemployee_pkey");

entity.ToTable("tblemployee");

entity.Property(e => e.Id).HasColumnName("id");
entity.Property(e => e.Department)
.HasMaxLength(50)
.HasColumnName("department");
entity.Property(e => e.Ename)
.HasMaxLength(100)
.HasColumnName("ename");
});

OnModelCreatingPartial(modelBuilder);
}

partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
}
Не могу определить, какие изменения мне нужно внести

Подробнее здесь: https://stackoverflow.com/questions/771 ... estring-si
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»