“无法在架构中使用表'',因为它被用于另一个实体”错误

时间:2017-02-10 12:01:48

标签: .net

我们正在尝试将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表做任何更改;它与我们完成迁移一样。

我们如何解决这个问题?

1 个答案:

答案 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