Example #1
0
        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);
            }
        }