无法删除实体实例

Can't delete instance of entity

我正在使用 visual studio 2013,我正在使用 entity framework 来开发项目。

我想删除一个实体实例。

这是我的实体:

INOTESTEntities db = new INOTESTEntities();

var finaExam = db.classAssesmentDateInfo.Where(x => x.Id == 22).First();

当我想删除它时,我正在尝试 db.DeleteObject(finaExam );

但是 DeleteObject 不存在所以我不能删除它。你能帮帮我吗?

如果您使用的是 DbContext,则需要转换为 ObjectContext 才能使用 DeleteObject 方法。

((IObjectContextAdapter)db).ObjectContext.DeleteObject(finaExam);

如果您想直接使用 DbContext 而不进行转换,请使用 Remove 语法:

db.classAssessmentDateInfo.Remove(finaExam);
db.SaveChanges();

删除将实体标记为已删除。调用 SaveChanges 时,标记的实体生成删除查询。

最后,如果您使用的是 VS 2013,您的项目很可能包含 EF 5 或 6(我的投票是 6),默认为 DbContext 而不是现在的 "deprecated" ObjectContext。这就是为什么您过去使用的语法在您的新项目中不再适用的原因。

您可能正在使用 System.Data.Entity.DbContext 而不是旧的 System.Data.Objects.ObjectContext,在这种情况下,您需要在 DbSet 上调用 Remove()

db.classAssesmentDateInfo.Remove(finaExam);