我们正在尝试将ASPNetUsers
表映射到我们的自定义表用户。以下是课程及其关系。
public partial class Users
{
public int Id { get; set; }
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
public string UserInfoId { get; set; }
public virtual AspNetUsers UserInfo { get; set; }
}
public class ApplicationUser : IdentityUser
{
public virtual Users Users { get; set; }
}
当我们使用这些模型实现身份时,我们得到以下错误:
“不能在实体'AspNetUsers'的架构''中使用表'AspNetUsers',因为它被用于另一个实体。”
我们没有对ASPNetUsers
表做任何更改;它与我们完成迁移一样。
我们如何解决这个问题?
答案 0 :(得分:2)
在ApplicationDbContext
中,您必须自定义AspNetUsers
表格:
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
new AspNetUsersConfiguration(builder.Entity<AspNetUsers>());
}
在配置文件中:
public class AspNetUsersConfiguration
{
public AspNetUsersConfiguration(EntityTypeBuilder<AspNetUsers> entity)
{
entity.ToTable("AspNetUsers", "dbo");
entity.HasKey(e => e.Id);
}
}
关键答案是定义表格dbo
到表AspNetUsers
。