diff --git a/src/EFCore.Relational/Infrastructure/RelationalOptionsExtension.cs b/src/EFCore.Relational/Infrastructure/RelationalOptionsExtension.cs
index 50d735b5cdf..3074e5b0094 100644
--- a/src/EFCore.Relational/Infrastructure/RelationalOptionsExtension.cs
+++ b/src/EFCore.Relational/Infrastructure/RelationalOptionsExtension.cs
@@ -162,7 +162,7 @@ public virtual int? CommandTimeout
/// A new instance with the option changed.
public virtual RelationalOptionsExtension WithCommandTimeout(int? commandTimeout)
{
- if (commandTimeout is <= 0)
+ if (commandTimeout is < 0)
{
throw new InvalidOperationException(RelationalStrings.InvalidCommandTimeout(commandTimeout));
}
diff --git a/test/EFCore.Relational.Tests/RelationalConnectionTest.cs b/test/EFCore.Relational.Tests/RelationalConnectionTest.cs
index bd4d8464f6c..e06bf17947a 100644
--- a/test/EFCore.Relational.Tests/RelationalConnectionTest.cs
+++ b/test/EFCore.Relational.Tests/RelationalConnectionTest.cs
@@ -888,6 +888,26 @@ public void Can_create_new_connection_with_CommandTimeout()
Assert.Equal(99, connection.CommandTimeout);
}
+ [ConditionalFact]
+ public void Can_create_new_connection_with_CommandTimeout_set_to_zero()
+ {
+ using var connection = new FakeRelationalConnection(
+ CreateOptions(
+ new FakeRelationalOptionsExtension()
+ .WithConnectionString("Database=FrodoLives")
+ .WithCommandTimeout(0)));
+ Assert.Equal(0, connection.CommandTimeout);
+ }
+
+ [ConditionalFact]
+ public void Throws_if_create_new_connection_with_CommandTimeout_negative()
+ {
+ Assert.Throws(
+ () => new FakeRelationalOptionsExtension()
+ .WithConnectionString("Database=FrodoLives")
+ .WithCommandTimeout(-1));
+ }
+
[ConditionalFact]
public void Can_set_CommandTimeout()
{
@@ -898,6 +918,16 @@ public void Can_set_CommandTimeout()
Assert.Equal(88, connection.CommandTimeout);
}
+ [ConditionalFact]
+ public void Can_set_CommandTimeout_to_zero()
+ {
+ using var connection = new FakeRelationalConnection(
+ CreateOptions(new FakeRelationalOptionsExtension().WithConnectionString("Database=FrodoLives")));
+ connection.CommandTimeout = 0;
+
+ Assert.Equal(0, connection.CommandTimeout);
+ }
+
[ConditionalFact]
public void Throws_if_CommandTimeout_out_of_range()
{