private static DataAccessProviderType GetDataAccessProviderTypeFromOptions(JetOptionsExtension jetOptions) { if (jetOptions.DataAccessProviderFactory == null) { throw new InvalidOperationException(JetStrings.DataAccessProviderFactory); } if (jetOptions.DataAccessProviderFactory .GetType() .GetTypesInHierarchy() .Any( t => string.Equals( t.FullName, "System.Data.OleDb.OleDbFactory", StringComparison.OrdinalIgnoreCase))) { return(DataAccessProviderType.OleDb); } if (jetOptions.DataAccessProviderFactory .GetType() .GetTypesInHierarchy() .Any( t => string.Equals( t.FullName, "System.Data.Odbc.OdbcFactory", StringComparison.OrdinalIgnoreCase))) { return(DataAccessProviderType.Odbc); } throw new InvalidOperationException("The JetConnection.DataAccessProviderFactory property needs to be set to an object of type OdbcFactory or OleDbFactory."); }
/// <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 JetRelationalConnection([NotNull] RelationalConnectionDependencies dependencies) : base(dependencies) { _jetOptionsExtension = dependencies.ContextOptions.FindExtension <JetOptionsExtension>() ?? new JetOptionsExtension(); if (_jetOptionsExtension.DataAccessProviderFactory == null && ((JetConnection)DbConnection)?.DataAccessProviderFactory == null) { throw new InvalidOperationException(JetStrings.DataAccessProviderFactory); } }