You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
EntityFrameworkCore.Jet/src/EFCore.Jet.Data/JetConnectionStringBuilder.cs

88 lines
2.7 KiB
C#

using System;
using System.Data.Common;
namespace EntityFrameworkCore.Jet.Data
{
public class JetConnectionStringBuilder : DbConnectionStringBuilder
{
private readonly DbConnectionStringBuilder _innerBuilder;
public JetConnectionStringBuilder() : this(JetConfiguration.DefaultDataAccessProviderType)
{
}
public JetConnectionStringBuilder(DataAccessProviderType providerType)
{
ProviderType = providerType;
_innerBuilder = this;
}
internal JetConnectionStringBuilder(DbProviderFactory innerFactory)
{
ProviderType = JetConnection.GetDataAccessProviderType(innerFactory);
_innerBuilder = innerFactory.CreateConnectionStringBuilder() ?? throw new InvalidOperationException($"CreateConnectionStringBuilder() returned null for {innerFactory}");
}
public DataAccessProviderType ProviderType { get; }
public string? Provider
{
get => _innerBuilder.GetProvider(ProviderType);
set
{
_innerBuilder.SetProvider(value!, ProviderType);
ConnectionString = _innerBuilder.ConnectionString;
}
}
public string? DataSource
{
get => _innerBuilder.GetDataSource(ProviderType);
set
{
_innerBuilder.SetDataSource(value!, ProviderType);
ConnectionString = _innerBuilder.ConnectionString;
}
}
public string? UserId
{
get => _innerBuilder.GetUserId(ProviderType);
set
{
_innerBuilder.SetUserId(value!, ProviderType);
ConnectionString = _innerBuilder.ConnectionString;
}
}
public string? Password
{
get => _innerBuilder.GetPassword(ProviderType);
set
{
_innerBuilder.SetPassword(value!, ProviderType);
ConnectionString = _innerBuilder.ConnectionString;
}
}
public string? SystemDatabase
{
get => _innerBuilder.GetSystemDatabase(ProviderType);
set
{
_innerBuilder.SetSystemDatabase(value!, ProviderType);
ConnectionString = _innerBuilder.ConnectionString;
}
}
public string? DatabasePassword
{
get => _innerBuilder.GetDatabasePassword(ProviderType);
set
{
_innerBuilder.SetDatabasePassword(value!, ProviderType);
ConnectionString = _innerBuilder.ConnectionString;
}
}
}
}