Я разрабатываю небольшое приложение с многопоточностью. Я решил использовать LiteDB для хранения данных. Я смог прочитать, обновить, удалить и вставить в мою базу данных успешно. Однако при попытке добавить другой поток, который также будет использовать ту же базу данных и ту же таблицу, выдается исключение, в котором говорится, что
System.IO.IOException: «Процесс не может получить доступ к файлу» C: \ Users \ Soyuz \ TestApp \ bin \ Debug \ Soyuz.db ', поскольку он используется другим процессом.'.
Вот как я установил соединение с моей базой данных:
using (var db = new LiteDatabase(@"Soyuz.db")) { }
Здесь в документе говорится, что LiteDB предлагает 2 типа соединений. Я полагаю, что я должен использовать общий, так как мне придется обращаться к одной и той же базе данных из разных потоков.
https://www.litedb.org/docs/connection-string/
но когда я попробовал этот код;
using (var db = new LiteDatabase(@"Soyuz.db; Connection=shared")) { }
или
using (var db = new LiteDatabase(@"Soyuz.db; Mode=Shared")) { }
на этот раз выдает еще одно исключение, сообщающее, что
System.ArgumentException: «EngineSettings должен иметь Filename или DataStream в качестве источника данных '
Может ли кто-нибудь, кто имеет опыт работы с LiteDB, помочь мне с этим, пожалуйста?