C# 在ObjectStateManager中找不到它
我有从MSSQL数据库中删除数据的代码C# 在ObjectStateManager中找不到它,c#,asp.net,asp.net-mvc,visual-studio,asp.net-web-api,C#,Asp.net,Asp.net Mvc,Visual Studio,Asp.net Web Api,我有从MSSQL数据库中删除数据的代码 [HttpPost] public ActionResult DeleteData(PartnerStudy partner) { var partnerStudy = GetByID(partner.Idetity); DomainRepository repository = new DomainRepository(); repository.Delete(partnerStud
[HttpPost]
public ActionResult DeleteData(PartnerStudy partner)
{
var partnerStudy = GetByID(partner.Idetity);
DomainRepository repository = new DomainRepository();
repository.Delete(partnerStudy);
repository.SaveChanges();
return RedirectToAction("ShowData");
}
public PartnerStudy GetByID(int id)
{
DomainRepository repository = new DomainRepository();
//PartnerStudy partner = repository.GetItem<PartnerStudy>(id);
var partner = repository.GetItem<PartnerStudy>(id);
repository.Dispose();
return partner;
}
我有个问题。
如果尝试删除,则在第Set()行中有错误。删除(项)
{”无法删除该对象,因为在中找不到该对象
ObjectStateManager。“}
什么意思?
为什么找不到以及ObjectStateManager在哪里?
谢谢你的回答 您需要将repository变量作为参数发送到GetByID()方法,并使用相同的存储库获取和删除该项
[HttpPost]
public ActionResult DeleteData(PartnerStudy partner)
{
using(var repository = new DomainRepository())
{
var partnerStudy = GetByID(partner.Idetity, repository);
repository.Delete(partnerStudy);
repository.SaveChanges();
}
return RedirectToAction("ShowData");
}
private PartnerStudy GetByID(int id, DomainRepository repository)
{
var partner = repository.GetItem<PartnerStudy>(id);
return partner;
}
[HttpPost]
公共行动结果删除数据(PartnerStudy partner)
{
使用(var repository=newdomainrepository())
{
var partnerStudy=GetByID(partner.Idetity,repository);
删除(partnerStudy);
SaveChanges();
}
返回重定向到操作(“ShowData”);
}
private PartnerStudy GetByID(int id,域存储库)
{
var partner=repository.GetItem(id);
返回伙伴;
}
我甚至添加了一个using块,因为DomainRepository似乎实现了IDisposable
[HttpPost]
public ActionResult DeleteData(PartnerStudy partner)
{
using(var repository = new DomainRepository())
{
var partnerStudy = GetByID(partner.Idetity, repository);
repository.Delete(partnerStudy);
repository.SaveChanges();
}
return RedirectToAction("ShowData");
}
private PartnerStudy GetByID(int id, DomainRepository repository)
{
var partner = repository.GetItem<PartnerStudy>(id);
return partner;
}