我有一個公司的模式: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