Skip to content

Commit f050841

Browse files
author
Nicolas Michels
committed
Adjust Default Timeout precedence
1 parent 0cbb867 commit f050841

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

src/Microsoft.Data.Sqlite.Core/SqliteConnection.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,11 @@ public override string ConnectionString
8686

8787
_connectionString = value ?? string.Empty;
8888
ConnectionOptions = new SqliteConnectionStringBuilder(value);
89+
90+
if (ConnectionOptions.DefaultTimeout.HasValue)
91+
{
92+
DefaultTimeout = ConnectionOptions.DefaultTimeout.Value;
93+
}
8994
}
9095
}
9196

@@ -275,11 +280,6 @@ public override void Open()
275280
this.ExecuteNonQuery("PRAGMA recursive_triggers = 1;");
276281
}
277282

278-
if (ConnectionOptions.DefaultTimeout.HasValue)
279-
{
280-
DefaultTimeout = ConnectionOptions.DefaultTimeout.Value;
281-
}
282-
283283
if (_collations != null)
284284
{
285285
foreach (var item in _collations)

test/EFCore.Sqlite.Tests/Storage/SqliteRelationalConnectionTest.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,26 @@ public void Sets_DefaultTimeout_when_connection()
3737
Assert.Same(originalConnection, connection);
3838
Assert.Equal(42, originalConnection.DefaultTimeout);
3939
}
40+
41+
[Fact]
42+
public void Sets_DefaultTimeout_when_connection_overrides_connection_string()
43+
{
44+
var originalConnection = new SqliteConnection("Data Source=:memory:;Default Timeout=50") { DefaultTimeout = 21 };
45+
Assert.Equal(21, originalConnection.DefaultTimeout);
46+
47+
var services = SqliteTestHelpers.Instance.CreateContextServices(
48+
new DbContextOptionsBuilder()
49+
.UseSqlite(originalConnection, x => x.CommandTimeout(42))
50+
.Options);
51+
52+
Assert.Equal(42, originalConnection.DefaultTimeout);
53+
}
54+
55+
[Fact]
56+
public void Sets_DefaultTimeout_when_connection_string()
57+
{
58+
var originalConnection = new SqliteConnection("Data Source=:memory:;Default Timeout=50");
59+
Assert.Equal(50, originalConnection.DefaultTimeout);
60+
}
4061
}
4162
}

0 commit comments

Comments
 (0)