不支持每种类型的多个对象集.对象集IdentityUsers'和用户都可以包含类型的实例

Kee*_*r01 3 c# asp.net asp.net-mvc entity-framework asp.net-mvc-4

对象集IdentityUsers'和用户都可以包含net类型的实例

但是我试图创建一个多对多的关系,比如这个教程显示了get-started-with-ef-using-mvc

但我得到了这个错误=> Multiple object sets per type are not supported. The object sets 'IdentityUsers' and 'Users' can both contain instances of type 'bugs_b_gone.Models.ApplicationUser'.

我在项目类中有一个属性,因此创建项目的用户是管理员但是现在管理员必须创建用户并将其分配给项目

public class Project
{
    [Key]
    public int ProjectID { get; set; }
    //public int AdminID { get; set; }
    [Required]
    [StringLength(50, ErrorMessage = "Title cannot be longer than 50 characters.")]
    [Column("Title")]
    [Display(Name = "Title")]
    public string Title { get; set; }
    [Required]
    public string Description { get; set; }


    //public int MemberID { get; set; }

    //public virtual ApplicationUser User { get; set; }

    public virtual ICollection<Bug> Bugs { get; set; }

    // veel op veel
    public virtual ICollection<ApplicationUser> User { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在是IdentityModel.cs

public class ApplicationUser : IdentityUser
{
    public virtual ICollection<Project> Projects { get; set; }
    public virtual ICollection<Bug> Bugs { get; set; }
    public virtual ICollection<Comment> Comments { get; set; }
}

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection")
    {
    }

    public DbSet<Project> Projects { get; set; }
    public DbSet<Bug> Bugs { get; set; }
    public DbSet<Comment> Comments { get; set; }


    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<IdentityUserLogin>().HasKey<string>(l => l.UserId);
        modelBuilder.Entity<IdentityRole>().HasKey<string>(r => r.Id);
        modelBuilder.Entity<IdentityUserRole>().HasKey(r => new { r.RoleId, r.UserId });


        //modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();

        /*  modelBuilder.Entity<AssignedTo>()
          .HasOptional(f => f.AssignedToID)
          .WithRequired(s => s.Bug);*/

        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

        modelBuilder.Entity<Project>()
            .HasMany(c => c.User).WithMany(i => i.Projects)
            .Map(t => t.MapLeftKey("ProjectID")
                .MapRightKey("Id")
                .ToTable("ProjectUser"));

    }

    public System.Data.Entity.DbSet<bugs_b_gone.Models.ApplicationUser> IdentityUsers { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*att 11

你的问题是这一行:

public System.Data.Entity.DbSet<bugs_b_gone.Models.ApplicationUser> IdentityUsers { get; set; }
Run Code Online (Sandbox Code Playgroud)

IdentityDbContext已包含Users具有类型的属性IDbSet<ApplicationUser>.你不需要添加自己DbSetApplicationUser.删除该行,你很好.