实体框架,更改未保存

本文关键字:保存 框架 实体 | 更新日期: 2023-09-27 17:50:31

我遇到了一个我从未见过的问题。从今天开始,我的代码没有保存一些更新。

我的代码在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_铭文变为5,我没有收到错误消息。

但是当我去到我的db,我没有这个id_etat_inscription在5的铭文

请注意,它是一个外键,链接到包含id从1到6的表"t_etats_inscriptions"。

我错过了什么吗?

Thanks a lot=)

实体框架,更改未保存

试试这个

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

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

我把它放在这里因为它是"解决问题的方法"

当我用

替换我的代码时
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();
}

它工作:/