C# Entiity Framework. Exception: The process cannot access the file because it is being used by another process

213
23 июня 2017, 06:09

Суть проблемы: мне нужно сохранить изменения в базе. После чего сравнить хешсумму базы с предыдущей и восстановить базу из бекапа, если они не совпадают (звучит странно, но такая уж задача)

        Model.GameBaseContext.getInsance().SaveChanges();
        File.WriteAllBytes(Paths.GameBasePath, File.ReadAllBytes(Paths.BackUP));

На второй строчке вылетает ошибка. Если проверить открыта ли база, после сохранения изменений

var test = Model.GameBaseContext.getInsance().Database.Connection.State;

то test всегда == closed;

Если написать Thread.Sleep(1000); то это помогает, но не всегда, иногда секунды ему не хватает, и все равно вылетает ошибка.

Вызов GC тоже ничего не дает (да я отчаялся и попробовал даже это)

Собственно вопрос, что вообще может блокировать файл и как его освободить?

READ ALSO
Почему Microsoft.Office.Interop.Word document.Variables.Count == 0?

Почему Microsoft.Office.Interop.Word document.Variables.Count == 0?

У меня есть docx файл с переменными, которые я добавил через Экспресс блоки -> Поле

337
Почему не доходят данные в Tcp/ip приложении?

Почему не доходят данные в Tcp/ip приложении?

Есть прикладное клиент-серверное приложение, основанное на сокетах tcp/ipДанные отправляются и получаются спокойно с любыми компами, кроме...

246
Entity Framework. Таблица с деревом категорий

Entity Framework. Таблица с деревом категорий

Делаю дерево категорий, каждая категория может быть родительской и иметь определенное место на текущем уровне, те

287