diff --git a/src/EFCore.Relational/Extensions/RelationalDatabaseFacadeExtensions.cs b/src/EFCore.Relational/Extensions/RelationalDatabaseFacadeExtensions.cs index 8609eb690d6..b22a06cb603 100644 --- a/src/EFCore.Relational/Extensions/RelationalDatabaseFacadeExtensions.cs +++ b/src/EFCore.Relational/Extensions/RelationalDatabaseFacadeExtensions.cs @@ -604,6 +604,16 @@ public static void SetCommandTimeout([NotNull] this DatabaseFacade databaseFacad public static string GenerateCreateScript([NotNull] this DatabaseFacade databaseFacade) => databaseFacade.GetRelationalService().GenerateCreateScript(); + /// + /// + /// Returns true if the database provider currently in use is a relational database. + /// + /// + /// The facade from . + /// True if a relational database provider is being used; false otherwise. + public static bool IsRelational([NotNull] this DatabaseFacade databaseFacade) + => ((IDatabaseFacadeDependenciesAccessor)Check.NotNull(databaseFacade, nameof(databaseFacade))).Dependencies is IRelationalDatabaseFacadeDependencies; + private static IRelationalDatabaseFacadeDependencies GetFacadeDependencies(DatabaseFacade databaseFacade) { var dependencies = ((IDatabaseFacadeDependenciesAccessor)databaseFacade).Dependencies; diff --git a/test/EFCore.Relational.Tests/RelationalDatabaseFacadeExtensionsTest.cs b/test/EFCore.Relational.Tests/RelationalDatabaseFacadeExtensionsTest.cs index 09571440bc3..8c6d05b7863 100644 --- a/test/EFCore.Relational.Tests/RelationalDatabaseFacadeExtensionsTest.cs +++ b/test/EFCore.Relational.Tests/RelationalDatabaseFacadeExtensionsTest.cs @@ -23,6 +23,21 @@ namespace Microsoft.EntityFrameworkCore { public class RelationalDatabaseFacadeExtensionsTest { + [ConditionalFact] + public void Return_true_if_relational() + { + using var context = RelationalTestHelpers.Instance.CreateContext(); + Assert.True(context.Database.IsRelational()); + } + + [ConditionalFact] + public void Return_false_if_inMemory() + { + using var context = InMemoryTestHelpers.Instance.CreateContext(); + Assert.False(context.Database.IsRelational()); + } + + [ConditionalFact] public void GetDbConnection_returns_the_current_connection() {