2011-12-26 23 views
5

के साथ विवादित कथन का कार्य करता है मेरे पास दो टेबल 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' में हुआ।
कथन समाप्त कर दिया गया है।

उत्तर

1

क्या आप कर्मचारी को ढूंढ और हटा नहीं सकते ??

public void deleteEmployee(int idEmployee) 
{ 
    using(MyEntities pe = new MyEntities()) 
    { 
     var emmployeeToDelete = pe.Employees.FirstOrDefault(e => e.idEmployee == idEmployee); 

     if(employeeToDelete != null) 
     { 
      pe.DeleteObject(employeeToDelete); 
      pe.SaveChanges(); 
     } 
    } 
} 

मुझे नहीं लगता कि आप इस से ज्यादा कुछ भी, वास्तव में क्या करना चाहिए .....

अगली बार जब आप इस विशेष दुकान कर्मचारी के थे लोड करते हैं, कि कर्मचारी नहीं रह गया होगा स्टोर के कर्मचारियों के संग्रह में - बिना किसी गन्दा मैनुअल डिलीट या कुछ भी किए ....

+1

नहीं, मैं नहीं कर सकता। यह वही त्रुटि कहता है। –

+0

कुछ भी नहीं। यह एक साधारण तालिका है जिसका प्राथमिक कुंजी शून्य नहीं है। हालांकि, अगर मैं idStore = 1 के साथ कर्मचारी को हटाने का प्रयास करता हूं, तो यदि स्टोर तालिका में idStore = 1 के साथ केवल एक पंक्ति है, तो इसे हटाया जाना चाहिए। मुझे लगता है कि यही कारण है कि यह त्रुटि हो रही है। –

+0

{ "हटाएँ बयान संदर्भ बाधा \ के साथ विरोध हुआ" FK_Bill_Employee \ myDatabase \ "तालिका \" dbo.Bill \ ","। संघर्ष डेटाबेस \ में हुई "कॉलम 'idEmployeeMember'। \ R \ n बयान किया गया है समाप्त हो गया। "} –

संबंधित मुद्दे