实体框架,更改未保存
本文关键字:保存 框架 实体 | 更新日期: 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();
}
它工作:/