/// <summary> /// This API supports the Entity Framework Core infrastructure and is not intended to be used /// directly from your code. This API may change or be removed in future releases. /// </summary> public override bool Exists() { using (var readOnlyConnection = _connection.CreateReadOnlyConnection()) { try { readOnlyConnection.Open(errorsExpected: true); } catch (SqliteException ex) when(ex.SqliteErrorCode == SQLITE_CANTOPEN) { return(false); } } return(true); }
/// <summary> /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to /// the same compatibility standards as public APIs. It may be changed or removed without notice in /// any release. You should only use it directly in your code with extreme caution and knowing that /// doing so can result in application failures when updating to a new Entity Framework Core release. /// </summary> public override bool Exists() { var connectionOptions = new SqliteConnectionStringBuilder(_connection.ConnectionString); if (connectionOptions.DataSource.Equals(":memory:", StringComparison.OrdinalIgnoreCase) || connectionOptions.Mode == SqliteOpenMode.Memory) { return(true); } using var readOnlyConnection = _connection.CreateReadOnlyConnection(); try { readOnlyConnection.Open(errorsExpected: true); } catch (SqliteException ex) when(ex.SqliteErrorCode == SQLITE_CANTOPEN) { return(false); } return(true); }