के साथ विवादित कथन का कार्य करता है मेरे पास दो टेबल Employee
(एन) और Store
(1) हैं, जिनमें n: 1 संबंध है।एंटीटी फ्रेमवर्क संदर्भ बाधा
Employee
में विदेशी कुंजी idStore
है जो Store
से प्राथमिक कुंजी है।
यहाँ है कि कैसे मैं Employee
से एक पंक्ति को हटाने का प्रयास:
public void deleteEmployee(int idEmployee)
{
MyEntities pe = new MyEntities();
try
{
var firstQuery = from e in pe.Employees
where e.idEmployee == idEmployee
select e;
string findIdStore = firstQuery.First().StoreReference.EntityKey.EntityKeyValues[0].Value.ToString();
int idStore = Int32.Parse(findIdStore);
Store r = pe.Stores.First(c => c.idStore == idStore);
r.Employees.Remove(firstQuery.First());
pe.DeleteObject(firstQuery.First());
pe.SaveChanges();
}
catch (Exception ex)
{
return;
}
}
और फिर भी, मैं त्रुटि मिलती है कि नष्ट बयान संदर्भ बाधा के साथ विरोध हुआ।
पूरा त्रुटि यहाँ है: संदर्भ बाधा "FK_Bill_Employee" के साथ
DELETE कथन विरोध हुआ था। यह संघर्ष डेटाबेस "myDatabase", तालिका "dbo.bill", कॉलम 'idEmployeeMember' में हुआ।
कथन समाप्त कर दिया गया है।
नहीं, मैं नहीं कर सकता। यह वही त्रुटि कहता है। –
कुछ भी नहीं। यह एक साधारण तालिका है जिसका प्राथमिक कुंजी शून्य नहीं है। हालांकि, अगर मैं idStore = 1 के साथ कर्मचारी को हटाने का प्रयास करता हूं, तो यदि स्टोर तालिका में idStore = 1 के साथ केवल एक पंक्ति है, तो इसे हटाया जाना चाहिए। मुझे लगता है कि यही कारण है कि यह त्रुटि हो रही है। –
{ "हटाएँ बयान संदर्भ बाधा \ के साथ विरोध हुआ" FK_Bill_Employee \ myDatabase \ "तालिका \" dbo.Bill \ ","। संघर्ष डेटाबेस \ में हुई "कॉलम 'idEmployeeMember'। \ R \ n बयान किया गया है समाप्त हो गया। "} –