मैं यह त्रुटिविदेशी कुंजी बाधा चक्र या एक से अधिक झरना रास्तों का कारण हो सकता परिचय
'क्षेत्र' चक्र या एक से अधिक झरना रास्तों का कारण हो सकता मेज पर विदेशी कुंजी बाधा 'FK_dbo.Regions_dbo.Countries_CountryId' का परिचय हो रही है । कोई कार्रवाई या पर कोई कार्रवाई अद्यतन करें, या अन्य विदेशी कुंजी बाधाओं को संशोधित करें पर निर्दिष्ट करें। बाधा उत्पन्न नहीं कर सका। पिछली त्रुटियां देखें।
मुझे आश्चर्य है कि इसका मतलब है कि मेरा डेटाबेस डिज़ाइन खराब है? मैंने पढ़ा है कि आप कैस्केड या उस तरह कुछ बंद कर देते हैं, लेकिन मुझे यकीन नहीं है कि यह गलीचा से समस्या को दूर कर रहा है या नहीं।
मैं सिर्फ अपने डोमेन वर्ग के माध्यम से ईएफ को अपनी टेबल जेनरेट करने दे रहा हूं (मैं इस बिंदु पर किसी भी डेटा एनोटेशन या धाराप्रवाह मैपिंग का उपयोग नहीं कर रहा हूं)।
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; }
}
क्या यह स्टोरों की वजह से हो सकता है?
आप हमें शामिल टेबल, क्या उनकी संरचना है, और सबसे महत्वपूर्ण दिखा सकते हैं: कैसे उनके बीच एफके बाधाएं स्थापित की गई हैं? तो आप क्षेत्रों और देशों के बीच एक कैस्केडिंग डिलीट स्थापित करना चाहते थे, ताकि यदि कोई देश हटा दिया गया हो, तो इसके सभी क्षेत्रों को हटा दिया गया है? उचित लगता है - सवाल यह है: यह चक्र क्यों बनाता है?कैस्केडिंग डिलीट के साथ अन्य एफके बाधाएं आपके पास पहले से मौजूद हैं? –
ठीक है, मैंने इसे उन क्षेत्रों को दिखाने के लिए अपडेट किया है, मेरे पास अभी तक कोई भी टेबल नहीं है क्योंकि मैं पहले कोड कर रहा हूं। – chobo2
दुर्भाग्यवश, आप हमें 'स्टोर' श्रेणी नहीं दिखा रहे हैं .... और मुझे कोई कोड नहीं दिख रहा है जो कैस्केडिंग डिलीट को परिभाषित करता है, या तो ... –