是否有一种方法可以在系统关闭时调用SaveChanges()来处理所有操作?



是否有办法调用SaveChanges为所有实体当系统关闭?

我正在使用EF6和MVVM模式,我想关闭并保存所有操作到数据库。

我正在尝试使用SessionEndReasons.SystemShutdown,但随后我需要调用所有保存方法。英孚是否提供了某种一次性拯救一切的解决方案?

谢谢

您可以在applicationExit事件中保存更改:

在你的程序中:

Application.ApplicationExit += new EventHandler(this.OnApplicationExit);
private void OnApplicationExit(object sender, EventArgs e) {
    myContext.SaveChanges();
}

https://msdn.microsoft.com/fr-fr/library/system.windows.forms.application.applicationexit (v = vs.110) . aspx

我不知道EF提供的函数,但您可以尝试:

public class foo
{
    static void Main(string[] args)
    {
        // add the exit handler
        AppDomain.CurrentDomain.ProcessExit += new EventHandler (OnProcessExit); 
        // your code
    }
    // will be called on exit
    static void OnProcessExit (object sender, EventArgs e)
    {
        // save your data
        myEntity.SaveChanges();
    }
}

,但它不会被调用,如果用户杀死进程

最新更新