[英]EF6 Many to Many Relationship: SqlException: Invalid column name 'SubAccount_SubAccountID'
[英]EF6 with IdentityDbContext many to many invalid column name
我有一个IdentityDbContext,其中ApplicationUser:IdentityUser有一个双重自引用表,用于在不同成员之间映射FriendShip:
public class ApplicationUser : IdentityUser
{
public virtual ICollection<ApplicationUser> Friends { get; set; }
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<ApplicationUser>().HasMany(x => x.Friends).WithMany();
//I've tried the commented out section with no success
//modelBuilder.Entity<ApplicationUser()
//.HasMany(x=>x.Friends).WithMany().Map(x=>
//{
// x.MapLeftKey("Friend1");
// x.MapRightKey("Friend2");
// x.ToTable("Friendship");
//});
base.OnModelCreating(modelBuilder);
}
然后尝试将新用户添加到数据库:
void AddUser()
{
var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>());
var user = new ApplicationUser { UserName = "HelloWorld" };
manager.Create(user, "password1");
}
这将引发EntityCommandExecutionException:“无效的列名'ApplicationUser_Id'。” 如果我放弃多对多关系,那么所有这些都可以,但是在项目中拥有这种关系会很好。
列名是新关系表的默认名称,另一个是ApplicationUser_Id1,我认为更改列名可能会有所帮助,但行不通(注释部分)。
同样奇怪的是,该列名称是发生异常的原因,因为将用户插入数据库与该表无关,我在这里迷路了。
任何建议/建议均不胜感激。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.