Use `DbConnectionStringBuilder` instead of its OleDb equivalent.

Introduce some helper extension methods to access well defined OleDb properties, that `DbConnectionStringBuilder` knows nothing about.
pull/37/head
Lau 6 years ago
parent 3c692bb172
commit 25f8685320

@ -3,7 +3,6 @@
using System;
using System.Collections.Generic;
using System.Data.Jet;
using System.Data.OleDb;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
@ -454,10 +453,14 @@ namespace EntityFrameworkCore.Jet.Migrations
Check.NotNull(operation, nameof(operation));
Check.NotNull(builder, nameof(builder));
var connectionStringBuilder = new OleDbConnectionStringBuilder(_options.ConnectionString);
var provider = string.IsNullOrEmpty(connectionStringBuilder.Provider)
? JetConfiguration.OleDbDefaultProvider
: connectionStringBuilder.Provider;
var connectionStringBuilder = JetProviderFactory.Instance.CreateConnectionStringBuilder();
connectionStringBuilder.ConnectionString = _options.ConnectionString;
var provider = connectionStringBuilder.GetProvider();
if (string.IsNullOrEmpty(provider))
{
provider = JetConfiguration.OleDbDefaultProvider;
}
builder
.Append("CREATE DATABASE ")

@ -0,0 +1,17 @@
using System.Data.Common;
namespace System.Data.Jet
{
public static class DbConnectionStringBuilderExtensions
{
private const string ProviderKey = "Provider";
public static string GetProvider(this DbConnectionStringBuilder source)
=> source.TryGetValue(ProviderKey, out var providerName)
? providerName as string
: null;
public static void SetProvider(this DbConnectionStringBuilder source, string value)
=> source[ProviderKey] = value;
}
}

@ -66,9 +66,7 @@ namespace System.Data.Jet
/// </returns>
public override DbConnectionStringBuilder CreateConnectionStringBuilder()
{
OleDbConnectionStringBuilder oleDbConnectionStringBuilder = new OleDbConnectionStringBuilder();
return oleDbConnectionStringBuilder;
return new OleDbConnectionStringBuilder();
}
/// <summary>

@ -97,6 +97,7 @@
<Compile Include="LogHelper.cs" />
<Compile Include="Messages.cs" />
<Compile Include="OleDbColumnFlagEnum.cs" />
<Compile Include="DbConnectionStringBuilderExtensions.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Resources.Designer.cs" />
<Compile Include="XmlObjectSerializer.cs" />

Loading…
Cancel
Save