Entity framework asp.mvc3从数据库中删除对象

Entity framework asp.mvc3从数据库中删除对象,entity-framework,asp.net-mvc-3,ado.net,Entity Framework,Asp.net Mvc 3,Ado.net,这是我的密码: public ActionResult DeleteItem(int id) { using (var cont = new PhotoGalleryDBEntities4()) { var refToDel = cont.Referanslars.First(x => x.Id == id); if (!ModelState.IsValid)

这是我的密码:

 public ActionResult DeleteItem(int id)
        {
            using (var cont = new PhotoGalleryDBEntities4())
            {
                var refToDel = cont.Referanslars.First(x => x.Id == id);
                if (!ModelState.IsValid)
                    return Content("Referans bulunamadı!");
                _db.Attach(refToDel);
                _db.DeleteObject(refToDel);
                _db.SaveChanges();
                return View();
            }
            return View();
        }

我在_db.Attach()中得到一个错误,即:一个实体对象不能被IEntityChangeTracker的多个实例引用。为什么会发生这种情况?

这里有一个链接,说明其他人是如何摆脱“一个实体对象不能被IEntityChangeTracker的多个实例引用”的问题的。我希望这有帮助

试试这个

public ActionResult DeleteItem(int id)
    {
        using (var cont = new PhotoGalleryDBEntities4())
        {
            var refToDel = cont.Referanslars.First(x => x.Id == id);
            if (!ModelState.IsValid)
                return Content("Referans bulunamadı!");
            cont.DeleteObject(refToDel);
            cont.SaveChanges();
            return View();
        }
        return View();
    }

您正在尝试附加已附加到的对象。删除“附加”,它可能会删除您的对象。否。不幸的是,这不起作用。我试过了。它说你必须在删除一个对象之前附加。我发现了问题所在。var cont=new PhotoGalleryDBEntities4()这里是cont是本地的,我必须使用它。但我用的是_db。