如何做并发阅读&在SQLite数据库上写?

时间:2013-06-25 10:40:15

标签: sqlite windows-8 windows-runtime microsoft-metro windows-store-apps

我正在创建一个Windows应用商店应用程序,它每天从Web服务中获取大量数据,然后将数据插入/更新到SQLite。因此,用户必须等到将数据下载到SQLite数据库,然后将其重定向到其他屏幕,这些屏幕显示以用户友好的方式下载数据。

是否可以运行下载&后台和用户的数据库操作可以使用该应用程序吗?我试图结合下载和放大插入操作&在单个页面中显示数据的UI但我收到错误“数据库被锁定”。如果我的应用程序被暂停,数据库插入/更新&网络服务呼叫在后台工作?

PS:我正在使用sqlite-net

1 个答案:

答案 0 :(得分:0)

您可以在单个交易中执行大量插入操作,例如

using (SQLiteConnection db = new SQLiteConnection("[database path]"))
{
    db.RunInTransaction(() =>
    {
        db.Insert(MyClass);
    });
}

这应该可以防止数据库锁定。