为什么ApplyChanges()会添加新记录?

时间:2012-07-17 19:16:30

标签: .net entity-framework

我尝试使用以下代码来更新一行,但它添加了一个新的,我找不到我的错误。

这是我的代码:

public int SaveTerm(Term term)
{
    using (AshyanehDataContext dc = this.conn.GetContext())
    {
        if (term.TermID > 0)
        {
            dc.Terms.Attach(dc.Terms.Single(t => t.TermID == term.TermID));
            dc.Terms.ApplyChanges(term);

        }
        else
        {
            term.AddedDate = FarsiLibrary.Utils.PersianDateConverter.ToPersianDate(DateTime.Now).ToString("D");
            dc.Terms.AddObject(term);
        }
        dc.SaveChanges();
    }
    return term.TermID;
}

1 个答案:

答案 0 :(得分:0)

我改变了这部分

if (term.TermID > 0)
{
    dc.Terms.Attach(dc.Terms.Single(t => t.TermID == term.TermID));
    dc.Terms.ApplyChanges(term);

}

if (term.TermID > 0)
{
    Term _term = dc.Terms.First(t => t.TermID == term.TermID);
    _term.Terms = term.Terms;
}

并且有效