Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ObjectStateManager中找不到它_C#_Asp.net_Asp.net Mvc_Visual Studio_Asp.net Web Api - Fatal编程技术网

C# 在ObjectStateManager中找不到它

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

我有从MSSQL数据库中删除数据的代码

    [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;

}