在WP7中实现回滚事务

时间:2011-12-27 12:55:54

标签: linq-to-sql windows-phone-7 sql-server-ce windows-phone-7.1

如何在wp7中实现回滚事务。目前我的问题是插入或删除后我正在调用提交更改,在那个时候,如果我做了一个墓碑,应用程序退出。我如何处理这种情况我打算使用try catch,如果发现任何异常意味着我需要回滚更改。请任何人帮助我在wp7中实现相同的功能。

1 个答案:

答案 0 :(得分:1)

为什么在应用程序变为逻辑删除时需要回滚?从技术上讲,您的应用程序不知道它何时被逻辑删除,您只知道何时它被取消激活。请参阅以下生命周期图:

enter image description here

(上图来自博客文章http://www.scottlogic.co.uk/blog/colin/2011/10/a-windows-phone-7-1-mango-mvvm-tombstoning-example/,详细描述了生命周期)

每当您取消激活应用程序时,您都可以处理Deactivated事件。来自MSDN

  

应用程序有10秒钟的时间来完成Deactivated handler

这使您有机会在应用程序取消激活之前清理,保存状态并执行其他活动。

我认为您在申请状态发生变化时提交了您的交易?提交是否在UI线程上运行?即是阻止吗?如果是这样,您不需要做任何其他事情(除了确保它不超过10秒)。如果您的提交在后台线程上运行,则必须确保您的Deactivated事件处理程序阻塞,直到提交完成。