我有一个公司的模式:OnCascadeDelete和Entity Framework
public class Company
{
public int Id { get; set; }
...
public virtual ICollection<Useraccount> Useraccounts { get; set; }
}
并有useraccount模型:
public class Useraccount
{
public int Id { get; set; }
...
public virtual ICollection<Company> Companies { get; set; }
}
所以这是上午:n连接:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Entity<Company>()
.HasMany(c => c.Useraccounts).WithMany(i => i.Companies)
.Map(t => t.MapLeftKey("CompanyId")
.MapRightKey("UseraccountId")
.ToTable("UseraccountCompany"));
}
然而,一个例外是初始化数据库时抛出。
随着
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
初始化工作。
我想继续删除级联,但我不知道如何管理它。 我也想保留这两个虚拟属性,这样我就可以从一个公司和这个用户帐户访问这些公司的useraccounts。
例外顺便说一句是:
引入外来KEY约束“Company_Useraccounts_Target”上表 “UseraccountCompany”可能会导致循环或多个级联路径。 指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。不能创建约束。
但是在那里设置了“禁用级联删除”(.WillCascadeOnDelete(false);)。 – mosquito87 2013-04-05 07:59:25
我不确定你在问什么 - “只要将其设置为真”,这是否可行? – NSGaga 2013-04-05 10:00:51