删除多行时出错"The object cannot be deleted because it was not found in the ObjectStateManager."



大家好 我使用此代码删除表中的多条记录。 但它给了我一个错误。

"无法删除该对象,因为在 对象状态管理器"

我是 EF 的新手,请帮助我了解我的代码中出了什么问题。

列表实体 = 我要从表
中删除的记录列表 U = 它是一个类型实体

using (var db = new DMContext())
{
  db.SaveChanges();
}

这意味着实体未附加。你可以这样尝试

using (var db = new DMContext())
{
    db.YourTableEntity.Attach(EntityToRemove); 
    db.YourTableEntity.Remove(EntityToRemove);
    db.SaveChanges();
}

您无法删除分离的实体,因此您需要先附加它们,然后才能将其删除。

删除多条记录

foreach (var entity in entities)
{
    Set<T>().Attach(entity);
    Set<T>().Remove(entity);
}
SaveChanges();

相关内容

最新更新