背景:
在我的Windows Phone项目中。我使用本地的sql ce数据库来存储日期。使用linq to sql以编程方式创建数据库表。
这个数据库是通过几个线程中的各种datacontext实例访问的。
问题是:
我给我的应用程序的用户一个删除所有数据和注销的选项。当用户选择此选项时,我使用datacontext的delete database方法删除数据库。但是,我总是收到另一个进程正在使用数据库的错误,因此无法删除。
任何朝正确方向的轻推都会使我高兴。
最佳答案
安迪如上所述(老实说,他们打败了我),当另一个进程仍然打开连接时,问题是访问数据库。基本上,只要将针对数据库运行的任何代码放在using块中,就可以很容易地修复它,如下所示:
using (MyDataContext db = new MyDataContext("isostore:/MyData.sdf"))
{
//Run database logic here
}
我想从某种意义上说,这是完全有道理的错误。wp7中打开的文件也会发生同样的情况。
有关更多信息和示例,请查看page。
关于c# - 线程安全的方法访问SQL CE数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9195913/