2013-02-13 44 views
0

foreach不會刪除任何東西..它似乎只是NULL表中的一些字段.. ..以及如何刪除主要的父母之後,我不知道...一直在尋找一個簡單的解決方案沒有運氣..刪除一對多的實體。 (DbContext)

[HttpPost, ActionName("Delete")] 
    public ActionResult DeleteConfirmed(int id) 
    { 
     tMember mem = db.tMembers.Find(id); 

     // find all VoteScores related to the member and delete them 
     var voteScores = db.tMemVoteScores.Where(mvs => mvs.MembersID == mem.MembersID).AsEnumerable(); 

     foreach (var mvs in voteScores) 
     { 
      var singleMvs = mvs; 
      mem.tMemVoteScores.Remove(singleMvs); 
     } 

     db.SaveChanges(); 

     //Delete the actual member now... where is the remove method? 
     // mem.remove??? 




     return RedirectToAction("Index"); 
    } 

回答

1

實體框架中刪除通話需要在DbSet水平上進行,而不是在列表中發現的個別項目。這也將需要父對象本身做的,即以下幾點:

foreach (var mvs in voteScores) 
{ 
    var singleMvs = mvs; 
    db.tMemVoteScores.Remove(singleMvs); 
} 

db.tMembers.Remove(mem); 

db.SaveChanges(); 
0
tMember mem = db.tMembers.Find(id); 
db.Entry(mem).State = EntityState.Deleted; 
db.SaveChanges(); 

這個怎麼樣?