实体框架SaveChanges不起作用

fat*_*Dev 0 .net c# asp.net entity-framework entity-framework-4

我有这段代码,但它不起作用,我不知道问题在哪里.

没有例外.

我正在使用Entity Framework 4.这个SaveChanges调用似乎没有在数据库中做任何事情.

try
{
    Demande_Rage_Animale editdemande = DemandeRageAnimaleDAO.First(s => s.ID == demandebean.ID);

    //frombeanTodemande(demandebean, editdemande);
    editdemande.num_rapport = "111111";

    //editdemande.EntityState.
    DemandeRageAnimaleDAO.SaveChanges();
}
catch (Exception ex)
{
    Logger.Error("==> Modifier_demande_RageAnimale : " + ex.InnerException);
}
Run Code Online (Sandbox Code Playgroud)

Equ*_*lsk 7

在调用SaveChanges之前,必须将实体标记为已修改:

DemandeRageAnimaleDAO.Entry(editdemande).State = EntityState.Modified;
DemandeRageAnimaleDAO.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

在旧版本的Entity Framework中,您可以使用:

DemandeRageAnimaleDAO.ObjectStateManager.ChangeObjectState(editdemande, System.Data.EntityState.Modified);
Run Code Online (Sandbox Code Playgroud)

问题中显示的方法可能不是完整的图片,也许实体已经脱离了.在这种情况下,您可以将其附加回上下文,将其标记为已修改并调用SaveChanges:

var editdemande = DemandeRageAnimaleDAO.First(s => s.ID == demandebean.ID);

// whatever happens here?

DemandeRageAnimaleDAO.Demande_Rage_Animale.Attach(editdemande);
editdemande.num_rapport = "111111";
DemandeRageAnimaleDAO.ObjectStateManager.ChangeObjectState(editdemande, System.Data.EntityState.Modified);
DemandeRageAnimaleDAO.SaveChanges();
Run Code Online (Sandbox Code Playgroud)