我可以将对象列表存储到SQLite,而不是分解列表并单独添加对象吗?

时间:2017-03-29 20:25:43

标签: c# sql xamarin sqlite

我正在将一个类的对象列表存储到SQLite表中。该类有30个字符串,我的列表中有大约6000个类的对象。它只有6MB。打破这个列表并存储几乎一分钟。但是我可以将整个列表存储为一个吗?到目前为止,这是我的代码:

    List<TheClass> ListOfObjects;

    public static void AddAllObjects() {
        for (int i = 0; i < ListOfObjects.Count; i++) {
            AddObject(ListOfObjects[i]);
        }
    }

    public static void AddObject(Object obj) {
        database.SaveItem(obj);
    }

    public void SaveItem<T>(T item) {
        connection.Insert(item);
    }

1 个答案:

答案 0 :(得分:1)

sqlite-net的对象SQLiteConnection具有方法InsertAll

List<Object> models = new List<Object>();
// ...
// LocalConnection conn = ...;
SQLiteConnection db = conn.GetSQLiteConnection();
db.InsertAll(models,true); // the true means "run in transaction"

https://github.com/oysteinkrog/SQLite.Net-PCL/blob/master/src/SQLite.Net/SQLiteConnection.cs

顺便说一下,它是作为事务中的foreach实现的,所以我想这是唯一的方法,至少使用sqlite-net。