我尝试使用以下代码来更新一行,但它添加了一个新的,我找不到我的错误。
这是我的代码:
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;
}
答案 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;
}
并且有效