是否有办法调用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();
}
}
,但它不会被调用,如果用户杀死进程