实体框架SaveChanges不更新数据库

mis*_*ayn 4 .net entity-framework

使用sql server profiler我可以看到AnswerComment的初始查询是转到db,但是当我到达ef.SaveChanges()时,没有任何内容进入db.我正在使用sqlexpress 2008 R2.

using (TPRDEntities ef = new TPRDEntities())
{
    var ac = ef.AnswerComments.Where(a => a.AnswerCommentID == answercomment.AnswerCommentID).FirstOrDefault();

    if (ac == null)
    {
        ac = new AnswerComment();
        ac.AnswerID = answercomment.AnswerID;
        ac.DisplayText = answercomment.DisplayText;
        ac.InsertDate = answercomment.InsertDate;
        ac.InsertUser = "save test user";
        ef.SaveChanges();
    }
}
Run Code Online (Sandbox Code Playgroud)

Eri*_* J. 6

您创建的新实例

ac = new AnswerComment();  
Run Code Online (Sandbox Code Playgroud)

EF不知道.它是EF以前从未见过的一个全新的对象实例.

您必须将其添加到ef.AnswerComments

ef.AnswerComments.Insert(ac);
Run Code Online (Sandbox Code Playgroud)

此外,确保ChangeTracking处于活动状态ef.