Multiple sets of objects for each type are not supported. The set of IdentityUsers'and Users objects may contain instances of type

The set of IdentityUsers'and Users objects may contain instances of type net

But I tried to create a many-many relationship, as shown in this lesson. getting-started-with-ef-using-mvc

But I got this error => 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' 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' .

I have a property in the project class, so the user who created the project is the administrator. But now, when the administrator has to create users and assign them to the project

 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; } } 

Now 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; } } 
+3
c # asp.net-mvc entity-framework asp.net-mvc-4
source share
1 answer

Your problem in this line:

 public System.Data.Entity.DbSet<bugs_b_gone.Models.ApplicationUser> IdentityUsers { get; set; } 

IdentityDbContext already contains a Users property of type IDbSet<ApplicationUser> . You do not need to add your own DbSet for ApplicationUser . Delete this line and you are good.

+11
source share

All Articles