Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.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/0/asp.net-mvc/14.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# 使用存储库删除MVC5中的方法_C#_Asp.net Mvc - Fatal编程技术网

C# 使用存储库删除MVC5中的方法

C# 使用存储库删除MVC5中的方法,c#,asp.net-mvc,C#,Asp.net Mvc,抱歉,我是ASP.NET的新手之一,我正在尝试了解为什么我的删除方法不起作用 他的方法是: [HttpPost, ActionName("Delete")] [ValidateAntiForgeryToken] public ActionResult DeleteConfirmed(Domain domain) { var rep = new Repository<Site>(); var siteRecordFromDomainObject = _mapper.Ma

抱歉,我是ASP.NET的新手之一,我正在尝试了解为什么我的删除方法不起作用

他的方法是:

[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(Domain domain)
{
    var rep = new Repository<Site>();
    var siteRecordFromDomainObject = _mapper.Map<Site>(domain);
    rep.Delete(siteRecordFromDomainObject);

    return View(domain);
}
[HttpPost,ActionName(“删除”)]
[ValidateAntiForgeryToken]
公共操作结果删除已确认(域)
{
var rep=新存储库();
var siteRecordFromDomainObject=\u mapper.Map(域);
rep.Delete(siteRecordFromDomainObject);
返回视图(域);
}
下面是存储库中的代码:

public void Delete(TObject t)
{
    _context.Set<TObject>().Remove(t);
    _context.SaveChanges();
}
公共作废删除(TObject t)
{
_context.Set().Remove(t);
_SaveChanges();
}
有谁能告诉我为什么会出现这个错误:

无法删除该对象,因为在中找不到该对象 ObjectStateManager


该对象需要已经加载或附加到上下文才能删除

使用标识符对对象的上下文执行搜索/查找。一旦找到对象,就可以将其从上下文中删除

考虑到在回答此问题时不知道所涉及模型的结构,这里是一个如何进行删除的示例

[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(Domain domain) {
    var rep = new Repository<Site>();
    //Assuming Repository has some means of retrieving entities,
    //get the site from repository using a common identifier
    var siteRecord = rep.FirstOrDefault(s => s.id == domain.id);
    if(siteRecord !=null) {
        //if a record is found, remove it from repository
        rep.Delete(siteRecord);
    }

    return View(domain);
}
[HttpPost,ActionName(“删除”)]
[ValidateAntiForgeryToken]
公共操作结果删除已确认(域){
var rep=新存储库();
//假设存储库有一些检索实体的方法,
//使用公共标识符从存储库获取站点
var siteRecord=rep.FirstOrDefault(s=>s.id==domain.id);
如果(siteRecord!=null){
//如果找到记录,请将其从存储库中删除
代表删除(站点记录);
}
返回视图(域);
}

需要已加载对象或将其附加到上下文才能将其删除

使用标识符对对象的上下文执行搜索/查找。一旦找到对象,就可以将其从上下文中删除

考虑到在回答此问题时不知道所涉及模型的结构,这里是一个如何进行删除的示例

[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(Domain domain) {
    var rep = new Repository<Site>();
    //Assuming Repository has some means of retrieving entities,
    //get the site from repository using a common identifier
    var siteRecord = rep.FirstOrDefault(s => s.id == domain.id);
    if(siteRecord !=null) {
        //if a record is found, remove it from repository
        rep.Delete(siteRecord);
    }

    return View(domain);
}
[HttpPost,ActionName(“删除”)]
[ValidateAntiForgeryToken]
公共操作结果删除已确认(域){
var rep=新存储库();
//假设存储库有一些检索实体的方法,
//使用公共标识符从存储库获取站点
var siteRecord=rep.FirstOrDefault(s=>s.id==domain.id);
如果(siteRecord!=null){
//如果找到记录,请将其从存储库中删除
代表删除(站点记录);
}
返回视图(域);
}

您可以检查域变量id,如果该id为零或null,则无法在数据库中调整对象。您可以检查域变量id,如果该id为零或null,则无法在数据库中调整对象。谢谢!这帮了大忙@GWizard,很乐意帮忙。如果此答案解决了您的问题,请将其标记为答案。当你得到足够的分数时,你也可以投票。谢谢,谢谢恩科西!这帮了大忙@GWizard,很乐意帮忙。如果此答案解决了您的问题,请将其标记为答案。当你得到足够的分数时,你也可以投票。谢谢