SqliteException: ошибка SQLite 1: «слишком много SQL переменных» - PullRequest
0 голосов
/ 26 февраля 2020

При использовании db.SaveAll(collection) и базы данных Sqlite кажется, что она вызывает приведенную ниже ошибку, если коллекция слишком велика:

SqliteException: SQLite Ошибка 1: «слишком много SQL переменных».

Коллекции не такие большие, может быть, несколько тысяч записей. Это предел Sqlite? Могу ли я настроить это?

Я сделал обходной путь вставки элементов один за другим (работает очень медленно), просто хотел бы узнать для дальнейшего использования, если это предполагаемое поведение, или я делаю что-то не так.

Спасибо.

Редактировать: кажется, что ограничение на вставку для sqlite составляет 500. Я предполагаю, что мне нужно сделать это самостоятельно

1 Ответ

1 голос
/ 26 февраля 2020

Ответ должен был сделать внутри транзакции. Он изменил его с 10 минут, чтобы вставить 10000 записей в 7 секунд.

using (var dbLite = _sqlLiteFactory.Open())
{
    using (IDbTransaction trans = dbLite.OpenTransaction())
    {
        collection.Each(x => dbLite.Save(x));

        trans.Commit();
    }
}
...