Asp.net mvc 删除具有一对多属性的实体。(DbContext)

Asp.net mvc 删除具有一对多属性的实体。(DbContext),asp.net-mvc,entity-framework,entity-framework-4,Asp.net Mvc,Entity Framework,Entity Framework 4,foreach不会删除任何内容。。它似乎只将表中的某些字段设置为空。。我不知道在那之后我是如何删除主父项的。。。一直在寻找一个简单的解决方案,但运气不佳 [HttpPost, ActionName("Delete")] public ActionResult DeleteConfirmed(int id) { tMember mem = db.tMembers.Find(id); // find all VoteScores related t

foreach不会删除任何内容。。它似乎只将表中的某些字段设置为空。。我不知道在那之后我是如何删除主父项的。。。一直在寻找一个简单的解决方案,但运气不佳

 [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");
    }

实体框架中的Remove调用需要在DbSet级别执行,而不是在列表中的单个项上执行。还需要对父对象本身执行此操作,即:

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

db.tMembers.Remove(mem);

db.SaveChanges();
这个怎么样

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