Cleanup all remaining ODBC and OLE DB references.

pull/46/head
Lau 6 years ago
parent fedfc295d6
commit 41579e74c9

@ -59,16 +59,40 @@ namespace EntityFrameworkCore.Jet.Internal
private static DataAccessType GetDataAccessTypeFromOptions(JetOptionsExtension jetOptions)
=> jetOptions.DataAccessProviderFactory
private static DataAccessProviderType GetDataAccessTypeFromOptions(JetOptionsExtension jetOptions)
{
if (jetOptions.DataAccessProviderFactory == null)
{
throw new InvalidOperationException(JetStrings.DataAccessProviderFactory);
}
if (jetOptions.DataAccessProviderFactory
.GetType()
.GetTypesInHierarchy()
.FirstOrDefault(
.Any(
t => string.Equals(
t.FullName,
"System.Data.OleDb.OleDbFactory",
StringComparison.OrdinalIgnoreCase)) !=
null
? DataAccessType.OleDb
: DataAccessType.Odbc;
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 is an internal API that supports the Entity Framework Core infrastructure and not subject to

@ -2,8 +2,6 @@
using System;
using System.Collections.Generic;
using System.Data.Jet;
using System.Data.OleDb;
using System.Diagnostics;
using EntityFrameworkCore.Jet.Storage.Internal;
using JetBrains.Annotations;

@ -170,7 +170,7 @@ namespace EntityFrameworkCore.Jet.Internal
methodName);
/// <summary>
/// The JetConnection has been configured without specifying a DataAccessProviderFactory. This property needs to be set to either OdbcFactory or OleDbFactory.
/// The JetConnection has been configured without specifying a DataAccessProviderFactory. This property needs to be set to an object of type OdbcFactory or OleDbFactory.
/// </summary>
public static string DataAccessProviderFactory
=> GetString("DataAccessProviderFactory");

@ -242,6 +242,6 @@
<value>The '{methodName}' method is not supported because the query has switched to client-evaluation. Inspect the log to determine which query expressions are triggering client-evaluation.</value>
</data>
<data name="DataAccessProviderFactory" xml:space="preserve">
<value>The JetConnection has been configured without specifying a DataAccessProviderFactory. This property needs to be set to either OdbcFactory or OleDbFactory.</value>
<value>The JetConnection has been configured without specifying a DataAccessProviderFactory. This property needs to be set to an object of type OdbcFactory or OleDbFactory.</value>
</data>
</root>

@ -2,8 +2,6 @@
using System;
using System.Collections.Generic;
using System.Data.Jet;
using System.Data.OleDb;
using System.Threading;
using System.Threading.Tasks;
using EntityFrameworkCore.Jet.Internal;

@ -1,9 +1,7 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using System.Data;
using System.Data.Common;
using System.Data.OleDb;
using JetBrains.Annotations;
using Microsoft.EntityFrameworkCore.Storage;
@ -35,6 +33,8 @@ namespace EntityFrameworkCore.Jet.Storage.Internal
{
base.ConfigureParameter(parameter);
// Check: Is this really necessary for Jet?
/*
if (DbType == System.Data.DbType.Date ||
DbType == System.Data.DbType.DateTime ||
DbType == System.Data.DbType.DateTime2 ||
@ -43,6 +43,7 @@ namespace EntityFrameworkCore.Jet.Storage.Internal
{
((OleDbParameter) parameter).OleDbType = OleDbType.DBTimeStamp;
}
*/
// OLE DB can't handle the DateTimeOffset type.
if (parameter.Value is DateTimeOffset dateTimeOffset)

@ -3,7 +3,6 @@
using System;
using System.Data;
using System.Data.Common;
using System.Data.OleDb;
using JetBrains.Annotations;
using Microsoft.EntityFrameworkCore.Storage;
@ -35,7 +34,6 @@ namespace EntityFrameworkCore.Jet.Storage.Internal
// Check: Is this really necessary for Jet?
/*
if (DbType == System.Data.DbType.Date ||
DbType == System.Data.DbType.DateTime ||
DbType == System.Data.DbType.DateTime2 ||

@ -3,8 +3,6 @@
using System;
using System.Data.Common;
using System.Data.Jet;
using System.Data.Odbc;
using System.Data.OleDb;
using EntityFrameworkCore.Jet.Infrastructure.Internal;
using EntityFrameworkCore.Jet.Internal;
using JetBrains.Annotations;
@ -60,7 +58,7 @@ namespace EntityFrameworkCore.Jet.Storage.Internal
public virtual IJetRelationalConnection CreateEmptyConnection()
{
var connection = (JetConnection) JetFactory.Instance.CreateConnection();
connection.DataAccessProviderFactory = OleDbFactory.Instance;
connection.DataAccessProviderFactory = _jetOptionsExtension.DataAccessProviderFactory;
connection.IsEmpty = true;
var contextOptions = new DbContextOptionsBuilder()

@ -3,7 +3,6 @@
using System;
using System.Data.Common;
using System.Data.Jet;
using System.Data.OleDb;
using JetBrains.Annotations;
using Microsoft.EntityFrameworkCore.Storage;

@ -1,7 +1,4 @@
using System;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.OleDb;
using System.Data.Common;
// ReSharper disable InconsistentNaming
@ -37,17 +34,13 @@ namespace System.Data.Jet
}
}
// "Microsoft.ACE.OLEDB.12.0" should have the least problems of all versions, as it supports 32 Bit and 64 Bit,
// "Microsoft.ACE.OLEDB.12.0" should have the fewest problems of all versions, as it supports 32 Bit and 64 Bit,
// does not throw an AccessViolationException when connecting through OLE DB without connection pooling enabled,
// has the highest backwards compatibility level of all recent releases and can freely be downloaded from
// Microsoft as "Microsoft Access Database Engine 2010 Redistributable".
public static string OleDbDefaultProvider = "Microsoft.ACE.OLEDB.12.0";
public static string OdbcDefaultProvider = "Microsoft Access Driver (*.mdb, *.accdb)";
public static DbProviderFactory DefaultProviderFactory = OdbcFactory.Instance;
// public static DbProviderFactory ProviderFactory { get; set; } = OleDbFactory.Instance;
// The SQL statement
//
// (SELECT COUNT(*) FROM MSysRelationships)

@ -1,10 +1,8 @@
using System.Data.Common;
using System.Data.Jet.JetStoreSchemaDefinition;
using System.Data.OleDb;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using System.Transactions;
namespace System.Data.Jet
{
@ -233,7 +231,7 @@ namespace System.Data.Jet
/// Enlists in the specified transaction.
/// </summary>
/// <param name="transaction">A reference to an existing <see cref="T:System.Transactions.Transaction" /> in which to enlist.</param>
public override void EnlistTransaction(Transaction transaction)
public override void EnlistTransaction(System.Transactions.Transaction transaction)
{
if (InnerConnection == null)
throw new InvalidOperationException(Messages.PropertyNotInitialized("Connection"));
@ -406,18 +404,6 @@ namespace System.Data.Jet
return clone;
}
/// <summary>
/// Performs an explicit conversion from <see cref="JetConnection"/> to <see cref="DbConnection"/>.
/// </summary>
/// <param name="connection">The connection.</param>
/// <returns>
/// The result of the conversion.
/// </returns>
public static explicit operator OleDbConnection(JetConnection connection)
{
return (OleDbConnection) connection.InnerConnection;
}
/// <summary>
/// Clears the pool.
/// </summary>
@ -506,10 +492,10 @@ namespace System.Data.Jet
var isOdbc = Regex.IsMatch(connectionString, @"Driver\s*=\s*\{?\w+\}?", RegexOptions.IgnoreCase);
if (isOdbc && isOleDb)
throw new InvalidOperationException("The connection string appears to be ODBC and OLE DB. Only one distinct style is supported.");
throw new InvalidOperationException("The connection string appears to be for ODBC and OLE DB. Only one distinct style is supported at a time.");
if (!isOdbc && !isOleDb)
throw new ArgumentException("The connection string appears to be neither ODBC nor OLE DB.", nameof(connectionString));
throw new ArgumentException("The connection string appears to be neither ODBC nor OLE DB compliant.", nameof(connectionString));
return isOleDb
? DataAccessType.OleDb

@ -1,6 +1,4 @@
using System;
using System.Data.Common;
using System.Data.OleDb;
using System.Reflection;
namespace System.Data.Jet
@ -19,7 +17,7 @@ namespace System.Data.Jet
internal JetFactory(JetConnection connection, DbProviderFactory innerFactory)
{
if (innerFactory is JetFactory)
throw new ArgumentException("JetProviderFactory can not use a JetProviderFactory as its underlying provider factory. Supported provider factories are OdbcFactory and OleDbFactory.");
throw new ArgumentException("JetProviderFactory cannot use a JetProviderFactory as its underlying provider factory. Supported provider factories are OdbcFactory and OleDbFactory.");
Connection = connection;
InnerFactory = innerFactory;
@ -113,9 +111,9 @@ namespace System.Data.Jet
? throw new InvalidOperationException(Messages.CannotCallJetProviderFactoryMethodOnSingletonInstance(nameof(CreateDataAdapter)))
: InnerFactory.CreateParameter();
public virtual DbProviderFactory CreateDataAccessProviderFactory(DataAccessType dataAccessType)
public virtual DbProviderFactory GetDataAccessProviderFactory(DataAccessProviderType dataAccessProviderType)
{
if (dataAccessType == DataAccessType.OleDb)
if (dataAccessProviderType == DataAccessProviderType.OleDb)
{
try
{
@ -125,7 +123,7 @@ namespace System.Data.Jet
}
catch (Exception e)
{
throw new TypeLoadException("To use OLE DB in conjunction with Jet, please use the \"EntityFrameworkCore.Jet.OleDb\" NuGet package.", e);
throw new TypeLoadException("To use OLE DB in conjunction with Jet, please reference the \"System.Data.OleDb\" NuGet package.", e);
}
}
else
@ -138,7 +136,7 @@ namespace System.Data.Jet
}
catch (Exception e)
{
throw new TypeLoadException("To use ODBC in conjunction with Jet, please use the \"EntityFrameworkCore.Jet.Odbc\" NuGet package.", e);
throw new TypeLoadException("To use ODBC in conjunction with Jet, please reference the \"System.Data.Odbc\" NuGet package.", e);
}
}
}

@ -39,8 +39,10 @@
<ItemGroup>
<PackageReference Include="Microsoft.CSharp" Version="$(MicrosoftCSharp)" />
<PackageReference Include="System.Data.OleDb" Version="$(SystemDataOleDbVersion)" />
<PackageReference Include="System.Data.Odbc" Version="$(SystemDataOdbcVersion)" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net461' ">
<Reference Include="System.Transactions" Pack="false" />
</ItemGroup>
</Project>

@ -73,7 +73,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder
.UseJet(JetTestStore.CreateConnectionString(_databaseName), JetConfiguration.DefaultProviderFactory, b => b.ApplyConfiguration())
.UseJet(JetTestStore.CreateConnectionString(_databaseName), TestEnvironment.DataAccessProviderFactory, b => b.ApplyConfiguration())
.UseInternalServiceProvider(_serviceProvider);
protected override void OnModelCreating(ModelBuilder modelBuilder)
@ -129,7 +129,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder
.UseJet(JetTestStore.CreateConnectionString(_databaseName), JetConfiguration.DefaultProviderFactory, b => b.ApplyConfiguration())
.UseJet(JetTestStore.CreateConnectionString(_databaseName), TestEnvironment.DataAccessProviderFactory, b => b.ApplyConfiguration())
.UseInternalServiceProvider(_serviceProvider);
protected override void OnModelCreating(ModelBuilder modelBuilder)

@ -53,7 +53,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder
.EnableServiceProviderCaching(false)
.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, JetConfiguration.DefaultProviderFactory, b => b.ApplyConfiguration());
.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, TestEnvironment.DataAccessProviderFactory, b => b.ApplyConfiguration());
}
[ConditionalFact]
@ -111,7 +111,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
private class StringInConfigContext : NorthwindContextBase
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder.UseJet("Database=Crunchie", JetConfiguration.DefaultProviderFactory, b => b.ApplyConfiguration());
=> optionsBuilder.UseJet("Database=Crunchie", TestEnvironment.DataAccessProviderFactory, b => b.ApplyConfiguration());
}
[ConditionalFact]
@ -257,7 +257,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
optionsBuilder
.EnableServiceProviderCaching(false)
.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, JetConfiguration.DefaultProviderFactory, b => b.ApplyConfiguration());
.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, TestEnvironment.DataAccessProviderFactory, b => b.ApplyConfiguration());
Assert.NotSame(_options, optionsBuilder.Options);
}
@ -277,7 +277,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
= new ServiceCollection()
.AddSingleton<IConfiguration>(configBuilder.Build())
.AddDbContext<UseConfigurationContext>(
b => b.UseJet(connectionString, JetConfiguration.DefaultProviderFactory).EnableServiceProviderCaching(false))
b => b.UseJet(connectionString, TestEnvironment.DataAccessProviderFactory).EnableServiceProviderCaching(false))
.BuildServiceProvider();
using (JetTestStore.GetNorthwindStore())

@ -34,12 +34,12 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
=> new ServiceCollection()
.AddDbContextPool<TContextService, TContext>(
ob =>
ob.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, JetConfiguration.DefaultProviderFactory)
ob.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, TestEnvironment.DataAccessProviderFactory)
.EnableServiceProviderCaching(false),
poolSize)
.AddDbContextPool<ISecondContext, SecondContext>(
ob =>
ob.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, JetConfiguration.DefaultProviderFactory)
ob.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, TestEnvironment.DataAccessProviderFactory)
.EnableServiceProviderCaching(false),
poolSize).BuildServiceProvider();
@ -48,12 +48,12 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
=> new ServiceCollection()
.AddDbContextPool<TContext>(
ob =>
ob.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, JetConfiguration.DefaultProviderFactory)
ob.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, TestEnvironment.DataAccessProviderFactory)
.EnableServiceProviderCaching(false),
poolSize)
.AddDbContextPool<SecondContext>(
ob =>
ob.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, JetConfiguration.DefaultProviderFactory)
ob.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, TestEnvironment.DataAccessProviderFactory)
.EnableServiceProviderCaching(false),
poolSize)
.BuildServiceProvider();
@ -248,7 +248,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
var serviceProvider = new ServiceCollection()
.AddDbContext<DbContext>(
ob
=> ob.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, JetConfiguration.DefaultProviderFactory)
=> ob.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, TestEnvironment.DataAccessProviderFactory)
.EnableServiceProviderCaching(false))
.BuildServiceProvider();

@ -63,7 +63,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder
.UseJet(JetTestStore.CreateConnectionString(_databaseName), JetConfiguration.DefaultProviderFactory, b => b.ApplyConfiguration())
.UseJet(JetTestStore.CreateConnectionString(_databaseName), TestEnvironment.DataAccessProviderFactory, b => b.ApplyConfiguration())
.UseInternalServiceProvider(_serviceProvider);
protected override void OnModelCreating(ModelBuilder modelBuilder)

@ -15,6 +15,8 @@
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="$(MicrosoftExtensionsConfigurationEnvironmentVariablesVersion)" />
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="$(MicrosoftExtensionsConfigurationFileExtensionsVersion)" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="$(MicrosoftExtensionsConfigurationJsonVersion)" />
<PackageReference Include="System.Data.Odbc" Version="$(SystemDataOdbcVersion)" />
<PackageReference Include="System.Data.OleDb" Version="$(SystemDataOleDbVersion)" />
</ItemGroup>
<ItemGroup Condition="'$(LocalEFCoreRepository)' == ''">

@ -42,7 +42,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
.EnableServiceProviderCaching(false)
.UseJet(
JetNorthwindTestStoreFactory.NorthwindConnectionString,
JetConfiguration.DefaultProviderFactory,
TestEnvironment.DataAccessProviderFactory,
b => b.ApplyConfiguration());
protected override void OnModelCreating(ModelBuilder modelBuilder)
@ -60,7 +60,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
using (var context = new NorthwindContext(
new DbContextOptionsBuilder()
.EnableServiceProviderCaching(false)
.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, JetConfiguration.DefaultProviderFactory, b => b.ApplyConfiguration())
.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, TestEnvironment.DataAccessProviderFactory, b => b.ApplyConfiguration())
.Options))
{
Assert.Equal(91, await context.Customers.CountAsync());
@ -111,7 +111,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder.UseJet(
JetNorthwindTestStoreFactory.NorthwindConnectionString, JetConfiguration.DefaultProviderFactory, b => b.ApplyConfiguration());
JetNorthwindTestStoreFactory.NorthwindConnectionString, TestEnvironment.DataAccessProviderFactory, b => b.ApplyConfiguration());
protected override void OnModelCreating(ModelBuilder modelBuilder)
=> ConfigureModel(modelBuilder);
@ -127,7 +127,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
{
using (var context = new NorthwindContext(
new DbContextOptionsBuilder()
.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, JetConfiguration.DefaultProviderFactory, b => b.ApplyConfiguration())
.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, TestEnvironment.DataAccessProviderFactory, b => b.ApplyConfiguration())
.UseInternalServiceProvider(
new ServiceCollection()
.AddEntityFrameworkJet()
@ -258,7 +258,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
public DbSet<Customer> Customers { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) =>
optionsBuilder.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, JetConfiguration.DefaultProviderFactory, b => b.ApplyConfiguration());
optionsBuilder.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, TestEnvironment.DataAccessProviderFactory, b => b.ApplyConfiguration());
protected override void OnModelCreating(ModelBuilder modelBuilder)
=> ConfigureModel(modelBuilder);
@ -310,7 +310,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder.UseJet(
JetNorthwindTestStoreFactory.NorthwindConnectionString, JetConfiguration.DefaultProviderFactory, b => b.ApplyConfiguration());
JetNorthwindTestStoreFactory.NorthwindConnectionString, TestEnvironment.DataAccessProviderFactory, b => b.ApplyConfiguration());
protected override void OnModelCreating(ModelBuilder modelBuilder)
=> ConfigureModel(modelBuilder);
@ -328,7 +328,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
.AddSingleton(
new DbContextOptionsBuilder()
.EnableServiceProviderCaching(false)
.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, JetConfiguration.DefaultProviderFactory, b => b.ApplyConfiguration())
.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, TestEnvironment.DataAccessProviderFactory, b => b.ApplyConfiguration())
.Options).BuildServiceProvider();
using (JetTestStore.GetNorthwindStore())
@ -377,7 +377,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
using (var context = new NorthwindContext(
new DbContextOptionsBuilder()
.EnableServiceProviderCaching(false)
.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, JetConfiguration.DefaultProviderFactory, b => b.ApplyConfiguration())
.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, TestEnvironment.DataAccessProviderFactory, b => b.ApplyConfiguration())
.Options))
{
Assert.Equal(91, await context.Customers.CountAsync());
@ -427,7 +427,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder
.EnableServiceProviderCaching(false)
.UseJet(_connectionString, JetConfiguration.DefaultProviderFactory, b => b.ApplyConfiguration());
.UseJet(_connectionString, TestEnvironment.DataAccessProviderFactory, b => b.ApplyConfiguration());
protected override void OnModelCreating(ModelBuilder modelBuilder)
=> ConfigureModel(modelBuilder);
@ -482,7 +482,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder
.UseInternalServiceProvider(_serviceProvider)
.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, JetConfiguration.DefaultProviderFactory, b => b.ApplyConfiguration());
.UseJet(JetNorthwindTestStoreFactory.NorthwindConnectionString, TestEnvironment.DataAccessProviderFactory, b => b.ApplyConfiguration());
}
}

@ -517,8 +517,8 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
[ConditionalFact]
public void Throws_when_no_initial_catalog()
{
var dataAccessType = JetConnection.GetDataAccessType(TestEnvironment.DefaultConnection);
var dataAccessProviderFactory = JetFactory.Instance.CreateDataAccessProviderFactory(dataAccessType);
var dataAccessType = JetConnection.GetDataAccessProviderType(TestEnvironment.DefaultConnection);
var dataAccessProviderFactory = JetFactory.Instance.GetDataAccessProviderFactory(dataAccessType);
var connectionStringBuilder = dataAccessProviderFactory.CreateConnectionStringBuilder();
connectionStringBuilder.ConnectionString = TestEnvironment.DefaultConnection;
connectionStringBuilder.Remove("Initial Catalog");
@ -791,7 +791,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder
.UseJet(_connectionString, JetConfiguration.DefaultProviderFactory, b => b.ApplyConfiguration())
.UseJet(_connectionString, TestEnvironment.DataAccessProviderFactory, b => b.ApplyConfiguration())
.UseInternalServiceProvider(CreateServiceProvider());
}

@ -879,7 +879,7 @@ END");
.EnableServiceProviderCaching(false)
.UseJet(
JetTestStore.CreateConnectionString(_databaseName),
JetConfiguration.DefaultProviderFactory,
TestEnvironment.DataAccessProviderFactory,
b => b.ApplyConfiguration());
}
}

@ -2,6 +2,7 @@
using System;
using System.Data.Jet;
using EntityFrameworkCore.Jet.FunctionalTests.TestUtilities;
using EntityFrameworkCore.Jet.Infrastructure;
using Microsoft.EntityFrameworkCore.Infrastructure;
using EntityFrameworkCore.Jet.Infrastructure.Internal;
@ -19,7 +20,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
Action<RelationalDbContextOptionsBuilder<JetDbContextOptionsBuilder, JetOptionsExtension>> relationalAction)
=> new DbContextOptionsBuilder()
.UseInternalServiceProvider(services.AddEntityFrameworkJet().BuildServiceProvider())
.UseJet("Data Source=LoggingJetTest.db", JetConfiguration.DefaultProviderFactory, relationalAction);
.UseJet("Data Source=LoggingJetTest.db", TestEnvironment.DataAccessProviderFactory, relationalAction);
protected override string ProviderName => "EntityFrameworkCore.Jet";
}

@ -23,7 +23,7 @@ DROP DATABASE TransactionSuppressed");
{
var options = AddOptions(
new DbContextOptionsBuilder()
.UseJet(TestStore.ConnectionString, JetConfiguration.DefaultProviderFactory, b => b.ApplyConfiguration()))
.UseJet(TestStore.ConnectionString, TestEnvironment.DataAccessProviderFactory, b => b.ApplyConfiguration()))
.UseInternalServiceProvider(ServiceProvider)
.Options;
return new MigrationsContext(options);

@ -1363,7 +1363,7 @@ namespace ModelSnapshot22
public class BloggingContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder.UseJet(@"Server=(localdb)\mssqllocaldb;Database=Test;ConnectRetryCount=0", JetConfiguration.DefaultProviderFactory);
=> optionsBuilder.UseJet(@"Server=(localdb)\mssqllocaldb;Database=Test;ConnectRetryCount=0", TestEnvironment.DataAccessProviderFactory);
public DbSet<Blog> Blogs { get; set; }
@ -1380,7 +1380,7 @@ namespace Identity30.Data
public class ApplicationDbContext : IdentityDbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder.UseJet(@"Server=(localdb)\mssqllocaldb;Database=Test;ConnectRetryCount=0", JetConfiguration.DefaultProviderFactory);
=> optionsBuilder.UseJet(@"Server=(localdb)\mssqllocaldb;Database=Test;ConnectRetryCount=0", TestEnvironment.DataAccessProviderFactory);
protected override void OnModelCreating(ModelBuilder builder)
{

@ -26,7 +26,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder.UseJet(JetTestStore.CreateConnectionString($"Seeds{TestId}"), JetConfiguration.DefaultProviderFactory);
=> optionsBuilder.UseJet(JetTestStore.CreateConnectionString($"Seeds{TestId}"), TestEnvironment.DataAccessProviderFactory);
}
}
}

@ -102,7 +102,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder
.UseJet(JetTestStore.CreateConnectionString(_databaseName), JetConfiguration.DefaultProviderFactory, b => b.ApplyConfiguration())
.UseJet(JetTestStore.CreateConnectionString(_databaseName), TestEnvironment.DataAccessProviderFactory, b => b.ApplyConfiguration())
.UseInternalServiceProvider(_serviceProvider);
}

@ -70,7 +70,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests.TestUtilities
ConnectionString = CreateConnectionString(Name);
var dataAccessProviderFactory = JetFactory.Instance.CreateDataAccessProviderFactory(JetConnection.GetDataAccessType(ConnectionString));
var dataAccessProviderFactory = JetFactory.Instance.GetDataAccessProviderFactory(JetConnection.GetDataAccessProviderType(ConnectionString));
var connection = (JetConnection) JetFactory.Instance.CreateConnection();
connection.ConnectionString = ConnectionString;
connection.DataAccessProviderFactory = dataAccessProviderFactory;
@ -132,7 +132,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests.TestUtilities
}
else
{
JetConnection.CreateEmptyDatabase(Name, JetConfiguration.DefaultProviderFactory);
JetConnection.CreateEmptyDatabase(Name, TestEnvironment.DataAccessProviderFactory);
}
return true;
@ -410,7 +410,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests.TestUtilities
public static string CreateConnectionString(string name)
{
var defaultConnectionString = TestEnvironment.DefaultConnection;
var dataAccessProviderFactory = JetFactory.Instance.CreateDataAccessProviderFactory(JetConnection.GetDataAccessType(defaultConnectionString));
var dataAccessProviderFactory = JetFactory.Instance.GetDataAccessProviderFactory(JetConnection.GetDataAccessProviderType(defaultConnectionString));
var connectionStringBuilder = dataAccessProviderFactory.CreateConnectionStringBuilder();
connectionStringBuilder.ConnectionString = defaultConnectionString;

@ -28,7 +28,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests.TestUtilities
new DbContext(
new DbContextOptionsBuilder()
.EnableServiceProviderCaching(false)
.UseJet(TestEnvironment.DefaultConnection, JetConfiguration.DefaultProviderFactory).Options),
.UseJet(TestEnvironment.DefaultConnection, TestEnvironment.DataAccessProviderFactory).Options),
DefaultMaxRetryCount, DefaultMaxDelay, _additionalErrorNumbers)
{
}

@ -27,7 +27,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
new DbContextOptionsBuilder()
.UseJet(
TestStore.ConnectionString,
JetConfiguration.DefaultProviderFactory,
TestEnvironment.DataAccessProviderFactory,
b => b.ApplyConfiguration().ExecutionStrategy(c => new JetExecutionStrategy(c))))
.UseInternalServiceProvider(Fixture.ServiceProvider);

@ -36,7 +36,7 @@ namespace EntityFrameworkCore.Jet.IntegrationTests
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseJet(JetConnection.GetConnectionString(GetStorePath(), JetConfiguration.DefaultProviderFactory), JetConfiguration.DefaultProviderFactory);
optionsBuilder.UseJet(JetConnection.GetConnectionString(GetStorePath(), Helpers.DataAccessProviderFactory), Helpers.DataAccessProviderFactory);
}
}
}

@ -37,7 +37,7 @@ namespace EntityFramework.Jet.FunctionalTests
protected override DbConnection GetConnection()
{
string connectionString = JetConnection.GetConnectionString("Chips.accdb", JetConfiguration.DefaultProviderFactory);
string connectionString = JetConnection.GetConnectionString("Chips.accdb", Helpers.DataAccessProviderFactory);
return new JetConnection(connectionString);
}
}

@ -82,6 +82,8 @@
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="$(MicrosoftEntityFrameworkCoreRelationalVersion)" />
<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="$(SystemDiagnosticsDiagnosticSourceVersion)" />
<PackageReference Include="System.Data.Odbc" Version="$(SystemDataOdbcVersion)" />
<PackageReference Include="System.Data.OleDb" Version="$(SystemDataOleDbVersion)" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNetTestSdk)" />
<PackageReference Include="MSTest.TestAdapter" Version="$(MSTestTestAdapter)" />
<PackageReference Include="MSTest.TestFramework" Version="$(MSTestTestFramework)" />

@ -10,7 +10,7 @@ namespace EntityFrameworkCore.Jet.IntegrationTests.GearOfWar
{
protected override DbConnection GetConnection()
{
return new JetConnection(JetConnection.GetConnectionString("GearOfWar.accdb", JetConfiguration.DefaultProviderFactory), JetConfiguration.DefaultProviderFactory);
return new JetConnection(JetConnection.GetConnectionString("GearOfWar.accdb", Helpers.DataAccessProviderFactory), Helpers.DataAccessProviderFactory);
}
[TestMethod]

@ -17,7 +17,7 @@ namespace EntityFrameworkCore.Jet.IntegrationTests.GearOfWar
public class JetDatabaseModelFactoryTest : TestBase<GearsOfWarContext>
{
[TestMethod]
[ExpectedException(typeof(System.Data.OleDb.OleDbException), AllowDerivedTypes = true)]
[ExpectedException(typeof(DbException), AllowDerivedTypes = true)]
public void CreateAllSystemTablesAndThrowException()
{
// This method is used to create all system table of this model
@ -116,7 +116,7 @@ WHERE 1 = 2;
protected override DbConnection GetConnection()
{
return new JetConnection(JetConnection.GetConnectionString("SystemTables.accdb", JetConfiguration.DefaultProviderFactory), JetConfiguration.DefaultProviderFactory);
return new JetConnection(JetConnection.GetConnectionString("SystemTables.accdb", Helpers.DataAccessProviderFactory), Helpers.DataAccessProviderFactory);
}
}
}

@ -2,6 +2,7 @@
using System.Data;
using System.Data.Common;
using System.Data.Jet;
using System.Data.Odbc;
using System.Diagnostics;
using System.IO;
@ -107,7 +108,7 @@ namespace EntityFrameworkCore.Jet.IntegrationTests
}
public static DbConnection GetJetConnection(string storeName = null)
=> new JetConnection(JetConnection.GetConnectionString(GetJetStorePath(storeName ?? GetStoreNameFromCallStack()), JetConfiguration.DefaultProviderFactory), JetConfiguration.DefaultProviderFactory);
=> new JetConnection(JetConnection.GetConnectionString(GetJetStorePath(storeName ?? GetStoreNameFromCallStack()), Helpers.DataAccessProviderFactory), Helpers.DataAccessProviderFactory);
private static string GetStoreNameFromCallStack(int frames = 1)
{
@ -129,13 +130,15 @@ namespace EntityFrameworkCore.Jet.IntegrationTests
public static string CreateJetDatabase(string storeName = null)
{
DeleteJetDatabase(storeName);
return JetConnection.CreateEmptyDatabase(storeName ?? GetStoreNameFromCallStack(), JetConfiguration.DefaultProviderFactory);
return JetConnection.CreateEmptyDatabase(storeName ?? GetStoreNameFromCallStack(), Helpers.DataAccessProviderFactory);
}
public static void DeleteJetDatabase(string storeName = null)
{
JetConnection.ClearAllPools();
JetConnection.DropDatabase(JetConnection.GetConnectionString(storeName ?? GetStoreNameFromCallStack(), JetConfiguration.DefaultProviderFactory));
JetConnection.DropDatabase(JetConnection.GetConnectionString(storeName ?? GetStoreNameFromCallStack(), Helpers.DataAccessProviderFactory));
}
public static DbProviderFactory DataAccessProviderFactory { get; set; } = OdbcFactory.Instance;
}
}

@ -13,7 +13,7 @@ namespace EntityFrameworkCore.Jet.IntegrationTests.Model05_WithIndex
protected override DbConnection GetConnection()
{
return new JetConnection(JetConnection.GetConnectionString("SystemTables.accdb", JetConfiguration.DefaultProviderFactory), JetConfiguration.DefaultProviderFactory);
return new JetConnection(JetConnection.GetConnectionString("SystemTables.accdb", Helpers.DataAccessProviderFactory), Helpers.DataAccessProviderFactory);
}
}
}

@ -13,6 +13,8 @@
<PackageReference Include="Microsoft.Extensions.Logging" Version="3.1.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.1.2" />
<PackageReference Include="System.Data.Odbc" Version="5.0.0-preview.3.20171.3" />
<PackageReference Include="System.Data.OleDb" Version="5.0.0-preview.3.20171.3" />
</ItemGroup>
<ItemGroup Condition="'$(LocalEFCoreRepository)' == ''">

@ -1,5 +1,6 @@
using System;
using System.Data.Jet;
using System.Data.OleDb;
using System.Linq;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
@ -30,7 +31,7 @@ namespace JetProviderExceptionTests
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder
.UseJet("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Northwind.accdb", JetConfiguration.DefaultProviderFactory)
.UseJet("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Northwind.accdb", OleDbFactory.Instance)
.UseLoggerFactory(
LoggerFactory.Create(
b => b

@ -39,7 +39,7 @@ namespace System.Data.Jet.Test
[TestMethod]
public void RenameTableAdox()
{
AdoxWrapper.RenameTable(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory), "tableName", "newTableName");
AdoxWrapper.RenameTable(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory), "tableName", "newTableName");
ReOpenConnection();
CheckTableExists("newTableName");
}
@ -47,7 +47,7 @@ namespace System.Data.Jet.Test
[TestMethod]
public void RenameColumnAdox()
{
AdoxWrapper.RenameColumn(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory), "tableName", "columnName", "newColumnName");
AdoxWrapper.RenameColumn(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory), "tableName", "columnName", "newColumnName");
ReOpenConnection();
CheckColumnExists("tableName", "newColumnName");
}

@ -39,7 +39,7 @@ namespace System.Data.Jet.Test
[ExpectedException(typeof(InvalidOperationException))]
public void ExecuteReader_From_Closed_Connection()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
try
{
using var command = connection.CreateCommand("select * from MSysAccessStorage");
@ -56,7 +56,7 @@ namespace System.Data.Jet.Test
[ExpectedException(typeof(InvalidOperationException))]
public void ExecuteNonQuery_From_Closed_Connection()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
try
{
using var command = connection.CreateCommand("select * from MSysAccessStorage");
@ -73,7 +73,7 @@ namespace System.Data.Jet.Test
[ExpectedException(typeof(InvalidOperationException))]
public void ExecuteScalar_From_Closed_Connection()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
try
{
using var command = connection.CreateCommand("select * from MSysAccessStorage");
@ -90,7 +90,7 @@ namespace System.Data.Jet.Test
[ExpectedException(typeof(InvalidOperationException))]
public void Prepare_From_Closed_Connection()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
try
{
using var command = connection.CreateCommand("select * from MSysAccessStorage");
@ -106,7 +106,7 @@ namespace System.Data.Jet.Test
[TestMethod]
public void GetDataReader_From_Open_Connection()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.Open();
var dataReader = connection.CreateCommand("select * from MSysAccessStorage")
@ -120,7 +120,7 @@ namespace System.Data.Jet.Test
[ExpectedException(typeof(InvalidOperationException))]
public void GetTransaction_From_Closed_Connection()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
using var transaction = connection.BeginTransaction();
}
@ -128,7 +128,7 @@ namespace System.Data.Jet.Test
[ExpectedException(typeof(InvalidOperationException))]
public void Change_Database_From_Closed_Connection()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.ChangeDatabase("abcd");
}
@ -136,7 +136,7 @@ namespace System.Data.Jet.Test
[ExpectedException(typeof(InvalidOperationException))]
public void Change_Database_From_Open_Connection()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.Open();
connection.ChangeDatabase("abcd");
}
@ -144,7 +144,7 @@ namespace System.Data.Jet.Test
[TestMethod]
public void Change_ConnectionString_From_Closed_Connection()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.ConnectionString = DummyStoreName;
}
@ -152,7 +152,7 @@ namespace System.Data.Jet.Test
[ExpectedException(typeof(InvalidOperationException))]
public void Change_ConnectionString_From_Open_Connection()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.Open();
connection.ConnectionString = DummyStoreName;
}
@ -160,7 +160,7 @@ namespace System.Data.Jet.Test
[TestMethod]
public void Read_ConnectionString_From_Closed0_Connection()
{
var connectionString = JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory);
var connectionString = JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory);
using var connection = new JetConnection(connectionString);
Assert.AreEqual(connectionString, connection.ConnectionString);
}
@ -168,7 +168,7 @@ namespace System.Data.Jet.Test
[TestMethod]
public void Read_ConnectionString_From_Closed1_Connection()
{
var connectionString = JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory);
var connectionString = JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory);
using var connection = new JetConnection(connectionString);
connection.Close();
Assert.AreEqual(connectionString, connection.ConnectionString);
@ -177,7 +177,7 @@ namespace System.Data.Jet.Test
[TestMethod]
public void Read_ConnectionString_From_Open_Closed_Connection()
{
var connectionString = JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory);
var connectionString = JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory);
using var connection = new JetConnection(connectionString);
connection.Open();
connection.Close();
@ -187,7 +187,7 @@ namespace System.Data.Jet.Test
[TestMethod]
public void Read_ConnectionString_From_Disposed_Connection()
{
var connectionString = JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory);
var connectionString = JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory);
using var connection = new JetConnection(connectionString);
connection.Dispose();
Assert.AreEqual(String.Empty, connection.ConnectionString);
@ -196,7 +196,7 @@ namespace System.Data.Jet.Test
[TestMethod]
public void Read_ConnectionString_From_Open_Disposed_Connection()
{
var connectionString = JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory);
var connectionString = JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory);
using var connection = new JetConnection(connectionString);
connection.Open();
connection.Dispose();
@ -206,7 +206,7 @@ namespace System.Data.Jet.Test
[TestMethod]
public void Read_ConnectionString_From_Open_Connection()
{
var connectionString = JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory);
var connectionString = JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory);
using var connection = new JetConnection(connectionString);
connection.Open();
Assert.AreEqual(connectionString, connection.ConnectionString);
@ -215,14 +215,14 @@ namespace System.Data.Jet.Test
[TestMethod]
public void Read_Database_From_Closed_Connection()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
Assert.IsTrue(connection.Database == string.Empty);
}
[TestMethod]
public void Read_Database_From_Open_Connection()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.Open();
Assert.IsTrue(connection.Database == string.Empty);
}
@ -231,14 +231,14 @@ namespace System.Data.Jet.Test
[ExpectedException(typeof(InvalidOperationException))]
public void Read_ServerVersion_From_Closed_Connection()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
Assert.IsTrue(connection.ServerVersion == string.Empty);
}
[TestMethod]
public void Read_ServerVersion_From_Open_Connection()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.Open();
Console.WriteLine(connection.ServerVersion);
}
@ -246,7 +246,7 @@ namespace System.Data.Jet.Test
[TestMethod]
public void Read_Database_From_Disposed_Connection()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.Dispose();
Assert.IsTrue(connection.Database == string.Empty);
}
@ -254,10 +254,10 @@ namespace System.Data.Jet.Test
[TestMethod]
public void Read_DataSource_From_Closed_Connection()
{
var connectionString = JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory);
var connectionString = JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory);
var dataAccessType = JetConnection.GetDataAccessType(connectionString);
var dataAccessProviderFactory = JetFactory.Instance.CreateDataAccessProviderFactory(dataAccessType);
var dataAccessType = JetConnection.GetDataAccessProviderType(connectionString);
var dataAccessProviderFactory = JetFactory.Instance.GetDataAccessProviderFactory(dataAccessType);
var connectionStringBuilder = dataAccessProviderFactory.CreateConnectionStringBuilder();
connectionStringBuilder.ConnectionString = connectionString;
@ -269,10 +269,10 @@ namespace System.Data.Jet.Test
[TestMethod]
public void Read_DataSource_From_Open_Connection()
{
var connectionString = JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory);
var connectionString = JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory);
var dataAccessType = JetConnection.GetDataAccessType(connectionString);
var dataAccessProviderFactory = JetFactory.Instance.CreateDataAccessProviderFactory(dataAccessType);
var dataAccessType = JetConnection.GetDataAccessProviderType(connectionString);
var dataAccessProviderFactory = JetFactory.Instance.GetDataAccessProviderFactory(dataAccessType);
var connectionStringBuilder = dataAccessProviderFactory.CreateConnectionStringBuilder();
connectionStringBuilder.ConnectionString = connectionString;
@ -285,7 +285,7 @@ namespace System.Data.Jet.Test
[TestMethod]
public void Read_DataSource_From_Disposed_Connection()
{
var connectionString = JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory);
var connectionString = JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory);
using var connection = new JetConnection(connectionString);
connection.Dispose();
Assert.AreEqual(string.Empty, connection.DataSource);
@ -295,7 +295,7 @@ namespace System.Data.Jet.Test
public void DisposeSeveralTimes()
{
var stateChangeCount = 0;
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.StateChange += (sender, args) =>
{
Console.WriteLine($"{args.OriginalState} => {args.CurrentState}");
@ -313,7 +313,7 @@ namespace System.Data.Jet.Test
public void DisposeWithoutOpen()
{
var stateChangeCount = 0;
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.StateChange += (sender, args) =>
{
Console.WriteLine($"{args.OriginalState} => {args.CurrentState}");
@ -327,7 +327,7 @@ namespace System.Data.Jet.Test
[TestMethod]
public void Read_Connection_String_After_Dispose()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
Assert.IsFalse(string.IsNullOrEmpty(connection.ConnectionString));
connection.Dispose();
Assert.IsTrue(string.IsNullOrEmpty(connection.ConnectionString));
@ -337,7 +337,7 @@ namespace System.Data.Jet.Test
[ExpectedException(typeof(InvalidOperationException))]
public void OpenSeveralTimes()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.Open();
connection.Open();
}
@ -346,7 +346,7 @@ namespace System.Data.Jet.Test
public void CloseSeveralTimes()
{
var stateChangeCount = 0;
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.StateChange += (sender, args) =>
{
Console.WriteLine($"{args.OriginalState} => {args.CurrentState}");
@ -361,7 +361,7 @@ namespace System.Data.Jet.Test
public void OpenCloseSeveralTimes()
{
var stateChangeCount = 0;
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.StateChange += (sender, args) =>
{
Console.WriteLine($"{args.OriginalState} => {args.CurrentState}");
@ -378,7 +378,7 @@ namespace System.Data.Jet.Test
{
var stateChangeCount = 0;
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.StateChange += (sender, args) =>
{
Console.WriteLine($"{args.OriginalState} => {args.CurrentState}");
@ -402,7 +402,7 @@ namespace System.Data.Jet.Test
[TestMethod]
public void GetSchema_From_Open_Connection()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.Open();
connection.GetSchema();
connection.Close();
@ -412,14 +412,14 @@ namespace System.Data.Jet.Test
[ExpectedException(typeof(InvalidOperationException))]
public void GetSchema_From_Closed_Connection()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.GetSchema();
}
[TestMethod]
public void Transaction_Execute_Close_Open_Execute()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.Open();
using var transaction = connection.BeginTransaction();
@ -442,7 +442,7 @@ namespace System.Data.Jet.Test
[TestMethod]
public void Transaction_Execute_Commit_Close_Open_Execute()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.Open();
using var transaction = connection.BeginTransaction();
@ -466,7 +466,7 @@ namespace System.Data.Jet.Test
[TestMethod]
public void Transaction_Execute_Close_Open()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.Open();
using var transaction = connection.BeginTransaction();
@ -490,7 +490,7 @@ namespace System.Data.Jet.Test
[ExpectedException(typeof(InvalidOperationException))]
public void Transaction_Execute_Close_Open_Commit()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.Open();
using var transaction = connection.BeginTransaction();
@ -515,7 +515,7 @@ namespace System.Data.Jet.Test
[TestMethod]
public void Transaction_Execute_Close_Open_Transaction()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.Open();
using var transaction1 = connection.BeginTransaction();
@ -541,7 +541,7 @@ namespace System.Data.Jet.Test
[ExpectedException(typeof(InvalidOperationException))]
public void Transaction_Transaction()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.Open();
using var firstTransaction = connection.BeginTransaction();
@ -563,7 +563,7 @@ namespace System.Data.Jet.Test
[TestMethod]
public void Transaction_Commit_Transaction()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.Open();
using var firstTransaction = connection.BeginTransaction();
@ -592,7 +592,7 @@ namespace System.Data.Jet.Test
[TestMethod]
public void Transaction_Rollback_Transaction()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.Open();
using var firstTransaction = connection.BeginTransaction();
@ -622,7 +622,7 @@ namespace System.Data.Jet.Test
[ExpectedException(typeof(InvalidOperationException))]
public void Transaction_Execute_Commit_Execute_Transaction()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.Open();
using var transaction = connection.BeginTransaction();
@ -646,7 +646,7 @@ namespace System.Data.Jet.Test
[ExpectedException(typeof(InvalidOperationException))]
public void Transaction_Execute_Commit_Commit()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.Open();
using var transaction = connection.BeginTransaction();

@ -23,7 +23,7 @@ namespace System.Data.Jet.Test
[TestMethod]
public void CreateAndDropDatabaseFromConnection()
{
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, JetConfiguration.DefaultProviderFactory));
using var connection = new JetConnection(JetConnection.GetConnectionString(StoreName, Helpers.DataAccessProviderFactory));
connection.CreateEmptyDatabase();
Assert.IsTrue(File.Exists(StoreName));

@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.OleDb;
using System.Text.RegularExpressions;
@ -91,8 +92,8 @@ namespace System.Data.Jet.Test
private static string GetTestDirectory()
{
return System.IO.Path.GetDirectoryName(
System.Reflection.Assembly.GetExecutingAssembly()
return IO.Path.GetDirectoryName(
Reflection.Assembly.GetExecutingAssembly()
.GetName()
.CodeBase.Replace("file:///", ""));
}
@ -183,7 +184,12 @@ namespace System.Data.Jet.Test
parameterValue = DBNull.Value;
else
parameterValue = Convert.ChangeType(sparameterValue, Type.GetType("System." + parameterType));
command.Parameters.Add(new OleDbParameter(parameterName, parameterValue));
var parameter = command.CreateParameter();
parameter.ParameterName = parameterName;
parameter.Value = parameterValue;
command.Parameters.Add(parameter);
}
}
@ -211,15 +217,17 @@ namespace System.Data.Jet.Test
{
DeleteDatabase(storeName);
var connectionString = JetConnection.GetConnectionString(storeName, JetConfiguration.DefaultProviderFactory);
AdoxWrapper.CreateEmptyDatabase(connectionString, JetConfiguration.DefaultProviderFactory);
var connectionString = JetConnection.GetConnectionString(storeName, DataAccessProviderFactory);
AdoxWrapper.CreateEmptyDatabase(connectionString, DataAccessProviderFactory);
return connectionString;
}
public static void DeleteDatabase(string storeName)
{
JetConnection.ClearAllPools();
JetConnection.DropDatabase(JetConnection.GetConnectionString(storeName, JetConfiguration.DefaultProviderFactory));
JetConnection.DropDatabase(JetConnection.GetConnectionString(storeName, DataAccessProviderFactory));
}
public static DbProviderFactory DataAccessProviderFactory { get; set; } = OdbcFactory.Instance;
}
}

@ -19,6 +19,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="System.Data.Odbc" Version="$(SystemDataOdbcVersion)" />
<PackageReference Include="System.Data.OleDb" Version="$(SystemDataOleDbVersion)" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNetTestSdk)" />
<PackageReference Include="MSTest.TestAdapter" Version="$(MSTestTestAdapter)" />
<PackageReference Include="MSTest.TestFramework" Version="$(MSTestTestFramework)" />

Loading…
Cancel
Save