foreach没有删除任何东西..它似乎只是NULL表中的一些字段.. ..以及我如何删除主要的父母后我不确定...一直在寻找一个没有运气的简单解决方案..
[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");
}
答案 0 :(得分:1)
删除实体框架中的调用需要在DbSet级别完成,而不是在列表中找到的单个项目上完成。这也需要为父对象本身完成,即以下内容:
foreach (var mvs in voteScores)
{
var singleMvs = mvs;
db.tMemVoteScores.Remove(singleMvs);
}
db.tMembers.Remove(mem);
db.SaveChanges();
答案 1 :(得分:0)
tMember mem = db.tMembers.Find(id);
db.Entry(mem).State = EntityState.Deleted;
db.SaveChanges();
这个怎么样?