Как закрыть файл sqlite, открытый с помощью System.Data.SQLite и DbContext?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как закрыть файл sqlite, открытый с помощью System.Data.SQLite и DbContext?

Сообщение Anonymous »

В моей версии EF6 этого пошагового руководства по созданию базы данных SQLite и доступу к ней с помощью System.Data.SQLite я обнаружил, что при любом доступе к базе данных дескриптор файла базы данных остается открытым еще долгое время после того, как я удалил единственную одноразовый объект, который я создал: DbContext.

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

Вы можете увидеть, насколько просто я использую DbContext и как File.Delete после его закрытия завершается с ошибкой:

Код: Выделить всё

using (var context = new ChinookContext())
{
var artists = from a in context.Artists
where a.Name.StartsWith("A")
orderby a.Name
select a;

foreach (var artist in artists)
{
Console.WriteLine(artist.Name);
}
}

// I've disposed of the DbContext. All handles to the sqlite database file SHOULD
// have been released by now.
// Yet, this next line fails because the file is still locked.
File.Delete("Chinook_Sqlite_AutoIncrementPKs.sqlite");
(полный контекст проекта на github)

Любые идеи о том, чего мне не хватает, чтобы закрыть дескриптор файла?

Кстати, я знаю, что часто задаваемые вопросы № 22 о блокировках файлов снимаются только тогда, когда я удаляю команду, средство чтения данных и т. д., но я этого не сделал. Я сам ничего из этого не открывал, поэтому не знаю, как от них избавиться.

Подробнее здесь: https://stackoverflow.com/questions/314 ... -dbcontext
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Метод не найден: 'System.String System.String.Format(System.IFormatProvider, System.String, System.Object)
    Anonymous » » в форуме C#
    0 Ответы
    141 Просмотры
    Последнее сообщение Anonymous
  • «SQLite.SQLiteException» в SQLite-net.dll и «SQLite.SQLiteException» в ошибке System.Private.CoreLib.dll в .net Maui, ко
    Anonymous » » в форуме C#
    0 Ответы
    61 Просмотры
    Последнее сообщение Anonymous
  • «SQLite.SQLiteException» в SQLite-net.dll и «SQLite.SQLiteException» в ошибке System.Private.CoreLib.dll в .net Maui, ко
    Anonymous » » в форуме C#
    0 Ответы
    64 Просмотры
    Последнее сообщение Anonymous
  • Невозможно преобразовать значение «Table_0» типа «System.Data.DataTable» в тип «System.Threading.Tasks..Task’1[System.Da
    Anonymous » » в форуме C#
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Как закрыть и сохранить полностью открытый файл в Python?
    Anonymous » » в форуме Python
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»