2012-07-09 145 views
4

使用sql server分析器我可以看到AnswerComment的初始查詢將進入數據庫,但是當我到達ef.SaveChanges()時,沒有任何數據到達數據庫。我正在使用sqlexpress 2008 R2。實體框架SaveChanges沒有更新db

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(); 
    } 
} 

回答

6

的新實例創建

ac = new AnswerComment(); 

不知道EF。這是EF以前從未見過的全新對象實例。

你必須將它添加到ef.AnswerComments

ef.AnswerComments.Insert(ac); 

此外,確保ChangeTracking是活躍ef

+1

哇一downvote到一年後被接受的答案,沒有評論,也沒有更好的答案。 – 2013-07-08 17:13:38

+0

downvote是從我,我做了一個錯誤...我不能撤消它,直到編輯的答案,對不起... – schglurps 2013-07-09 10:23:40

+0

@schglurps:我編輯了答案。感謝您糾正意外的失望。 – 2013-08-12 21:13:55

0

你永遠插入新的項目到表:

ef.AnswerComments.Insert(ac); 
ef.SaveChanges(); 
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(); 
相關問題