2011-12-26 19 views
5

ile çakışan iki çerçeve Employee (n) ve n12 ilişkisine sahip Store (1) var.Varlık Çerçeve, başvuru kısıtlaması

Employee, idStore numaralı ana anahtarı olan Store numaralı birincil anahtara sahiptir.

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; 
    } 
} 

Ve yine, ben hata alıyorum referans sınırlamayla çakıştığı silme açıklamada şu: Burada

Ben Employee bir satırı silmeye nasıl.

tam hata

buradadır: REFERANS kısıtlaması "FK_Bill_Employee" ile

DELETE deyimi çatışma. Çakışma, "myDatabase" veritabanında, "dbo.Bill", "idEmployeeMember" sütununda gerçekleşti.
Deyim sonlandırıldı.

cevap

1

Yalnızca çalışanı bulup silemiyor musunuz?

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(); 
     } 
    } 
} 
Bunu gerçekten daha fazla bir şey, yapmanız gereken sanmıyorum

.....

Eğer çalışanın aitti bu özel mağaza yüklemek

dahaki sefere o çalışanın artık olacak mağaza çalışanlarının koleksiyonunda - herhangi bir dağınık manuel silme yapmadan veya herhangi bir şey yapmadan ....

+1

Hayır, yapamam. Aynı hatayı söylüyor. –

+0

Hiçbir şey. Ana anahtarı null olmayan basit bir tablo. Ancak, çalışanı idStore = 1 ile silmeye çalışırsam, eğer Store tablosunda idStore = 1 ile sadece bir satır varsa, silinmelidir. Sanırım bu yüzden bu hata oluyor. –

+0

{"The DELETE deyimi REFERANS kısıtlamasıyla çelişiyor \" FK_Bill_Employee \ ".Flaşma \" myDatabase \ "veritabanında oluştu, tablo \" dbo.Bill \ ", 'idEmployeeMember' sütunu. \ R \ nDevamı "} –

İlgili konular