System.Data.SQLite

Login
This project makes use of Eagle, provided by Mistachkin Systems.
Eagle: Secure Software Automation
Ticket Hash: 165af4c68cd9dc26e6145abd44904f520cf18ded
Title: System.Data.SQLite.EF6 has lock on file after DbContext.Dispose()
Status: Closed Type: Incident
Severity: Important Priority: Medium
Subsystem: LINQ Resolution: External_Bug
Last Modified: 2020-10-29 02:38:52
Version Found In: 1.0.112
User Comments:
anonymous added on 2020-03-17 20:36:42:
Trying to delete the file after performing my unit test failed. It failed because the file is still open used.

System.IO.IOException : The process cannot access the file 'D:\ALAIN\GitHub\RPLV\DataAccessLayerTests\bin\Debug\test.sqlite' because it is being used by another process.

Following is the code I used to reproduce the problem.
        [Fact]
        public void Open_close_with_Context()
        {

            //--- Setup
            SQLiteConnection connection = RplvContextFactory.Instance.CreateConnection($"Data Source={_testFile}") as SQLiteConnection;
            RplvContext contextTest = new RplvContext(connection, true);
            contextTest.Database.Connection.Should().BeSameAs(connection);

            //--- Action
            var result = contextTest.LuminaireDb.ToList();

            //--- Verification
            contextTest.Database.Connection.State.Should().Be(ConnectionState.Closed);

            //--- Action
            contextTest.Dispose();
            contextTest = null;

            //--- Verification

            File.Exists(_testFile).Should().BeTrue();

            // failed throw IOException
            File.Delete(_testFile);
        }

mistachkin added on 2020-03-18 18:20:02:

Is it possible for you to use a debug build and see if the underlying connection is being closed?