我正在使用visual studio 2013,我正在使用实体框架来开发项目。
我想删除实体的实例。
这是我的实体:
INOTESTEntities db = new INOTESTEntities();
var finaExam = db.classAssesmentDateInfo.Where(x => x.Id == 22).First();
当我要删除它时,我正在尝试db.DeleteObject(finaExam );
但是DeleteObject
不存在所以我不能删除它。你能救我吗?。
答案 0 :(得分:0)
如果您正在使用DbContext,则需要强制转换为ObjectContext以使用DeleteObject方法。
((IObjectContextAdapter)db).ObjectContext.DeleteObject(finaExam);
如果您想在没有强制转换的情况下直接使用DbContext,请使用删除语法:
db.classAssessmentDateInfo.Remove(finaExam);
db.SaveChanges();
删除将实体标记为已删除。调用SaveChanges时,标记的实体会生成删除查询。
最后,如果您使用的是VS 2013,您的项目很可能包括EF 5或6(我的投票是6),默认为DbContext而不是现在“已弃用”的ObjectContext。这就是您过去使用的语法不再适用于您的新项目的原因。
答案 1 :(得分:0)
您可能正在使用System.Data.Entity.DbContext
而不是旧System.Data.Objects.ObjectContext
,在这种情况下,您需要在DbSet上调用Remove()
:
db.classAssesmentDateInfo.Remove(finaExam);