无法删除实体实例
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);
我正在使用 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);