使用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();
}
}
答案 0 :(得分:6)
您创建的新实例
ac = new AnswerComment();
EF不知道。这是EF以前从未见过的一个全新的对象实例。
您必须将其添加到ef.AnswerComments
ef.AnswerComments.Insert(ac);
另外,请确保ef
的更改跟踪处于活动状态。
答案 1 :(得分:1)
我认为您错过了将AnswerComment
添加到上下文中,您必须这样做:
ac = new AnswerComment();
ac.AnswerID = answercomment.AnswerID;
ac.DisplayText = answercomment.DisplayText;
ac.InsertDate = answercomment.InsertDate;
ac.InsertUser = "save test user";
ef.AnswerComments.Add(ac);
ef.SaveChanges();
答案 2 :(得分:0)
您永远不会将新项目插入表格中:
ef.AnswerComments.Insert(ac);
ef.SaveChanges();