【发布时间】:2017-03-29 20:25:43
【问题描述】:
我将一个类的对象列表存储到 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);
}
【问题讨论】:
-
您想将列表存储为一行吗?还是要将列表中的每个对象存储为一行?我的意思是,您是否只想将您的列表序列化为一个 blob,或者您是否正在寻找类似 sqlite 的批量插入的东西?
-
@LasseV.Karlsen 我目前的方法似乎非常低效,主要是因为插入的数量。我想以某种方式减少这个数字。也许是一团
-
可以将 xml 存储到数据库中。但是你需要序列化数据。
-
@JeroenvanLangen 序列化也需要很多时间。我正在寻找一种方法来按原样存储列表。像一团
-
@james 关于原始代码,您是否在 一个 事务中执行 6000 次插入?...