有没有办法在系统关闭时为所有实体调用SaveChanges?
我使用EF6和MVVM模式,我想关闭并保存所有操作到数据库。
我正在尝试使用SessionEndReasons.SystemShutdown
但是我需要调用所有保存方法。 EF是否提供某种解决方案来同时保存所有内容?
谢谢
答案 0 :(得分:2)
我不知道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();
}
}
但如果用户杀死了prcess
,则不会调用它答案 1 :(得分:2)
您可以在applicationExit事件中保存更改:
在你的计划中:
Application.ApplicationExit += new EventHandler(this.OnApplicationExit);
private void OnApplicationExit(object sender, EventArgs e) {
myContext.SaveChanges();
}