1

我目前正在尝试使用 C# 和 System.Data.SQLite 在我的 Windows 8 应用程序中向 SQLite 数据库添加大量数据。我有一个列表中的所有对象(MediaItem),我正在使用 foreach 循环将每个对象添加到数据库中。不幸的是,这很慢,所以我想知道是否有办法加快速度。例如,我可以将完整列表交给数据库吗?到目前为止,这是我的代码:

List<MediaItem> items;

// adding lots of onbjects to the list...

using (var db = new SQLiteConnection(dbPath))
{
     foreach (var item in items)
     {
         db.Insert(item);
     }
 }
4

1 回答 1

7

根据我的经验,将尽可能多的数据库调用包装到事务中会大大加快速度:

using (var db = new SQLiteConnection(dbPath))
{
    db.RunInTransaction(() =>
    {
        foreach (var item in items)
        {
            db.Insert(item);
        }
    });
}
于 2013-03-27T23:56:43.523 回答