对象集IdentityUsers'和用户都可以包含net
类型的实例但我尝试创建多个关系,就像本教程显示getting-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'
。
我在项目类中有一个属性,因此创建项目的用户是admin 但现在管理员必须创建用户并将其分配给项目
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; }
}
现在是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; }
}
答案 0 :(得分:11)
你的问题就在这一行:
public System.Data.Entity.DbSet<bugs_b_gone.Models.ApplicationUser> IdentityUsers { get; set; }
IdentityDbContext
已包含类型为Users
的{{1}}属性。您无需为IDbSet<ApplicationUser>
添加自己的DbSet
。删除该行,你很好。