【问题标题】:DeleteObject method is missing in Entity Framework 4.1实体框架 4.1 中缺少 DeleteObject 方法
【发布时间】:2012-02-13 21:05:04
【问题描述】:

这快把我逼疯了。我收到错误,

对象不包含 DeleteObject 的定义。

这是我产生错误的代码行:

ctx.Tanks.DeleteObject(Tank);

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

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

有什么想法吗?

【问题讨论】:

  • 你们是否使用相同版本的实体框架和相同的模板?

标签: entity-framework c#-4.0 entity-framework-4.1 edmx


【解决方案1】:

DbContext API 定义 DbSets 而不是 ObjectSets。 DbSet 有一个 Remove 方法而不是 DeleteObject 方法。您需要首先决定要使用哪个 API。如果是ObjectContextDbContext

【讨论】:

  • 谢谢。我昨天意识到了。
  • 所以使用 DBContext 没有办法像 DeleteObject 在 Objectcontext 中那样删除父级和所有相关的子级?
  • @DavieDave 您可以使用DbSet。如果你为子表配置了级联删除,那么它会自动被删除。
【解决方案2】:
  [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");
        }

【讨论】:

  • 这篇文章已经有一个被接受的答案。如果您愿意做出贡献,请在您的回答中添加更多详细信息和上下文。
猜你喜欢
  • 1970-01-01
  • 2013-07-17
  • 1970-01-01
  • 2023-03-07
  • 2016-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-04
相关资源
最近更新 更多