我收到此錯誤引進國外KEY約束可能會導致循環或多個級聯路徑
表「區域」可能會導致 循環或多個級聯路徑引進國外KEY約束 「FK_dbo.Regions_dbo.Countries_CountryId」 。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他外鍵約束。無法 創建約束。查看以前的錯誤。
我想知道這是不是意味着我的數據庫設計是壞?我讀您關閉級聯或類似的東西,但我只是不知道這是席捲問題出來了地毯的。
我只是讓EF在我的領域類生成我的表(我沒有使用任何數據註釋或流暢映射在這一點)。
public class Country
{
public Country()
{
this.Stores = new List<Store>();
this.Regions = new List<Region>();
Id = GuidCombGenerator.GenerateComb();
}
public Guid Id { get; private set; }
private string name;
public string Name
{
get { return name; }
set
{
name = value.Trim();
}
}
private string code;
public string Code
{
get { return code; }
set
{
code = value.Trim();
}
}
public virtual ICollection<Store> Stores { get; set; }
public virtual ICollection<Region> Regions { get; set; }
}
public class City
{
public City()
{
this.Stores = new List<Store>();
Id = GuidCombGenerator.GenerateComb();
}
public Guid Id { get; private set; }
private string name;
public string Name
{
get { return name; }
set
{
name = value.Trim();
}
}
public Guid RegionId { get; set; }
public virtual Region Region { get; set; }
public virtual ICollection<Store> Stores { get; set; }
}
public class Region
{
public Region()
{
this.Cities = new List<City>();
this.Stores = new List<Store>();
Id = GuidCombGenerator.GenerateComb();
}
public Guid Id { get; private set; }
private string state;
public string State
{
get { return state; }
set
{
state = value.Trim();
}
}
public Guid CountryId { get; set; }
public virtual ICollection<City> Cities { get; set; }
public virtual Country Country { get; set; }
public virtual ICollection<Store> Stores { get; set; }
}
public class Store
{
public Store()
{
Id = GuidCombGenerator.GenerateComb();
Users = new List<User>();
}
public Guid Id { get; private set; }
public Guid CountryId { get; set; }
public Guid CityId { get; set; }
public Guid RegionId { get; set; }
public virtual City City { get; set; }
public virtual Country Country { get; set; }
public virtual Region Region { get; set; }
public virtual ICollection<User> Users { get; set; }
}
難道是因爲商店?
,你能否告訴我們涉及到的表,其結構是什麼,最重要的是:如何FK約束在它們之間建立?所以你想在區域和國家之間建立一個級聯刪除,這樣如果一個國家被刪除,它的所有區域都會被刪除?聽起來很合理 - 問題是:爲什麼會造成循環?你已經有了什麼其他的FK級聯刪除約束? –
好的,我更新它來顯示這些區域,我沒有任何生成的表,因爲我正在做代碼第一。 – chobo2
不幸的是,您沒有向我們展示'Store'類....並且我沒有看到任何定義級聯刪除的代碼,或者... –