实体框架,未保存更改

时间:2014-03-17 08:27:43

标签: c# asp.net database entity-framework

我遇到了一个我从未见过的问题。从今天开始,一切都运行良好,我的代码不会保存一些更新。

我的代码在t_inscription.cs

public void emailsent(t_inscriptions inscription = null)
{
    if (inscription == null)
    {
        inscription = this;
    }

    inscription.id_etat_inscription = 5;
    db.AcceptAllChanges();
    db.SaveChanges();
}

当我调试时,应用程序通过此代码,对象铭文不为空并正确加载,其id_etat_inscription变为5,并且我没有收到任何错误消息。

但是当我去我的数据库时,我在5点没有这个id_etat_inscription的题词。

请注意,它是一个与表“t_etats_inscriptions”链接的外键,其中包含1到6的ID。

我错过了什么吗?

非常感谢=)

2 个答案:

答案 0 :(得分:0)

试试这个

db.Entry<t_inscriptions >(inscription ).State = EntityState.Modified;
db.SaveChanges();  

db.Entry(t_inscriptions).State = EntityState.Modified;
db.SaveChanges(); 

答案 1 :(得分:0)

我会把它放在这里,因为它解决了这个问题&#34;,

当我用

替换我的代码时
public void emailsent(t_inscriptions inscription = null)
{
    if (inscription == null)
    {
        inscription = this;
    }

    t_inscriptions inscription2 = db.t_inscriptions.FirstOrDefault(x => x.id == inscription.id);
    inscription2.id_etat_inscription = 5;

    inscription.id_etat_inscription = 5;
   //db.Entry<t_inscriptions>(inscription).State = EntityState.Modified;
 //   db.t_inscriptions.Attach(inscription);
   db.ObjectStateManager.ChangeObjectState(inscription2, EntityState.Modified);
  //  db.AcceptAllChanges();
    db.SaveChanges();
}

有效:/