Skip to content

Commit

Permalink
Add support for name= connection strings (named connection strings). (
Browse files Browse the repository at this point in the history
  • Loading branch information
lauxjpn committed Jan 30, 2022
1 parent 7ed2f56 commit 957d151
Showing 1 changed file with 13 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
using JetBrains.Annotations;
using Microsoft.EntityFrameworkCore.Diagnostics;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.Internal;
using Microsoft.EntityFrameworkCore.Utilities;
using MySqlConnector;

Expand Down Expand Up @@ -97,17 +98,20 @@ public static class MySqlDbContextOptionsBuilderExtensions
Check.NotNull(optionsBuilder, nameof(optionsBuilder));
Check.NotEmpty(connectionString, nameof(connectionString));

var csb = new MySqlConnectionStringBuilder(connectionString)
var resolvedConnectionString = new NamedConnectionStringResolver(optionsBuilder.Options)
.ResolveConnectionString(connectionString);

var csb = new MySqlConnectionStringBuilder(resolvedConnectionString)
{
AllowUserVariables = true,
UseAffectedRows = false
};

connectionString = csb.ConnectionString;
resolvedConnectionString = csb.ConnectionString;

var extension = (MySqlOptionsExtension)GetOrCreateExtension(optionsBuilder)
.WithServerVersion(serverVersion)
.WithConnectionString(connectionString);
.WithConnectionString(resolvedConnectionString);

((IDbContextOptionsBuilderInfrastructure)optionsBuilder).AddOrUpdateExtension(extension);
ConfigureWarnings(optionsBuilder);
Expand Down Expand Up @@ -151,7 +155,12 @@ public static class MySqlDbContextOptionsBuilderExtensions
Check.NotNull(optionsBuilder, nameof(optionsBuilder));
Check.NotNull(connection, nameof(connection));

var csb = new MySqlConnectionStringBuilder(connection.ConnectionString);
var resolvedConnectionString = connection.ConnectionString is not null
? new NamedConnectionStringResolver(optionsBuilder.Options)
.ResolveConnectionString(connection.ConnectionString)
: null;

var csb = new MySqlConnectionStringBuilder(resolvedConnectionString);

if (!csb.AllowUserVariables ||
csb.UseAffectedRows)
Expand Down

0 comments on commit 957d151

Please sign in to comment.