背景:
在我的Windows手机项目中。我使用本地SQL CE数据库来存储日期。以编程方式使用LINQ to SQL创建数据库表。
通过几个线程中的各种datacontext实例访问此数据库。
问题在于:
我为我的应用程序的用户提供了一个选项,可以删除所有数据并注销。当用户选择此项时,我使用datacontext的DeleteDatabase方法删除数据库。但是,我总是收到另一个进程正在使用数据库的错误,因此无法删除。
任何正确方向的推动都将成为我的一天。
答案 0 :(得分:2)
Andy如上所述(说实话他们打败了我)问题是当另一个进程仍然打开了连接时访问数据库。基本上,可以通过将对数据库运行的任何代码放在使用块中来轻松修复,如下所示:
using (MyDataContext db = new MyDataContext("isostore:/MyData.sdf"))
{
//Run database logic here
}
我认为从某种意义上说,这对错误很有意义。 WP7中的打开文件也会发生同样的事情。
有关详情和示例,请查看此page。