Entity framework 实体框架4.1中缺少DeleteObject方法

Entity framework 实体框架4.1中缺少DeleteObject方法,entity-framework,c#-4.0,entity-framework-4.1,edmx,Entity Framework,C# 4.0,Entity Framework 4.1,Edmx,这让我快发疯了。我得到一个错误 对象不包含DeleteObject的定义 以下是产生错误的代码行: ctx.Tanks.DeleteObject(Tank); 我试图引用我朋友创建的另一个edmx文件中的另一个对象,然后一切正常,DeleteObject存在。我认为我的项目中没有遗漏任何参考资料 项目本身包含edmx文件,我使用DBContext创建POCO 有什么想法吗?DbContextAPI定义了DbSets而不是ObjectSets。具有Remove方法而不是DeleteObject方

这让我快发疯了。我得到一个错误

对象不包含DeleteObject的定义

以下是产生错误的代码行:

ctx.Tanks.DeleteObject(Tank);
我试图引用我朋友创建的另一个
edmx
文件中的另一个对象,然后一切正常,
DeleteObject
存在。我认为我的项目中没有遗漏任何参考资料

项目本身包含edmx文件,我使用
DBContext
创建POCO


有什么想法吗?

DbContext
API定义了
DbSet
s而不是
ObjectSet
s。具有
Remove
方法而不是
DeleteObject
方法。您需要首先决定要使用哪种API。如果它是
ObjectContext
DbContext

[HttpPost]
  [HttpPost]
        public ActionResult Delete(IEnumerable<int> employeeIdsToDelete)
        {
            var lstemployee = _db.StudentEmployees.Where(x => employeeIdsToDelete.Contains(x.Id));
            foreach (var item in lstemployee)
            {
                _db.StudentEmployees.Remove(item);
            }
            _db.SaveChanges();

            return RedirectToAction("Index");
        }
公共操作结果删除(IEnumerable employeeIdsToDelete) { var lstemployee=_db.StudentEmployees.Where(x=>employeeIdsToDelete.Contains(x.Id)); foreach(LSTMemployee中的var项目) { _db.学生员工。删除(项目); } _db.SaveChanges(); 返回操作(“索引”); }
你们是否使用相同模板的同一版本的entity framework?谢谢。我昨天意识到了这一点。因此,使用DBContext无法像Objectcontext中的DeleteObject那样删除父对象和所有相关的子对象?@DavieDave您可以使用
DbSet
。如果您已经为子表配置了级联删除,那么它将自动被删除。此帖子已经有一个可接受的答案。如果你想发表意见,请在回答的基础上添加更多细节和上下文。