C# 系统关闭时,是否有方法为所有操作调用SaveChanges()?

C# 系统关闭时,是否有方法为所有操作调用SaveChanges()?,c#,entity-framework,mvvm,C#,Entity Framework,Mvvm,系统关闭时,是否有方法调用所有实体的SaveChanges 我使用的是EF6和MVVM模式,我想关闭所有操作并将其保存到数据库中 我尝试了sessionedreasons.SystemShutdown,但是我需要调用所有的保存方法。EF是否提供了某种解决方案来立即保存所有内容 谢谢我不知道EF提供的功能,但您可以尝试以下方法: public class foo { static void Main(string[] args) { // add the exit

系统关闭时,是否有方法调用所有实体的SaveChanges

我使用的是EF6和MVVM模式,我想关闭所有操作并将其保存到数据库中

我尝试了
sessionedreasons.SystemShutdown
,但是我需要调用所有的保存方法。EF是否提供了某种解决方案来立即保存所有内容


谢谢

我不知道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();
    }
}

但是如果用户终止进程,它将不会被调用。我不知道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();
    }
}

但是它不会被调用,如果用户终止进程,您可以保存对applicationExit事件的更改:

在您的程序中:

Application.ApplicationExit += new EventHandler(this.OnApplicationExit);

private void OnApplicationExit(object sender, EventArgs e) {

    myContext.SaveChanges();
}

您可以保存对applicationExit事件的更改:

在您的程序中:

Application.ApplicationExit += new EventHandler(this.OnApplicationExit);

private void OnApplicationExit(object sender, EventArgs e) {

    myContext.SaveChanges();
}

EF的设计目的不是长寿命。所以我不明白有什么必要。我的应用程序中的保存过程分为两部分。首先,员工必须运行计时器-该计时器保存第一部分数据,当他完成时,他停止计时器,该计时器将保存他所做的事情,直到计时器停止。有时,需要关闭计算机,我不信任别人,所以我想在系统关闭之前保存他所做的一切(以防他“忘记”):)谢谢。EF不是设计为长寿的。所以我不明白有什么必要。我的应用程序中的保存过程分为两部分。首先,员工必须运行计时器-该计时器保存第一部分数据,当他完成时,他停止计时器,该计时器将保存他所做的事情,直到计时器停止。有时,需要关闭计算机,我不信任别人,所以我想在系统关闭之前保存他所做的一切(以防他“忘记”):)谢谢。