База SQLite через "
ADO.NET 3.5SP1 Entity Framework support for SQLite"
В приложении есть объет базы содержаший DataContext
Соединяюсь с БД в gui потоке,
Создаю и модифицирую объекты как в gui, так и в дочерних потоках.
После каждого изменения объекта вызываю
dataContext.SubmitChanges( ConflictMode.ContinueOnConflict );
как в основном, так и в дочерних потоках.
Переодически натыкаюсь на такие баги:
1) вываливаются исключения ChangeConflictException — борюсь с помощью
dataContext.ChangeConflicts.ResolveAll(RefreshMode.KeepCurrentValues);
и затем повторно SubmitChanges
НО! при этом реально в БД эти данные остаются старыми (как будто я никаких ResolveAll не вызывал и повторно не сабмитил)
2) По завершения работы дочерних потоков, в главном потоке меняю состояние результирующего объекта и делаю submit — исключений не возникает,
но после повторного запуска приложения получаю предпоследнее состояние результирующего объекта !! WTF !!!
Может кто сталкивался с многопоточностью в LINQ to SQL ?
Помогите советом.