Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
i4004 committed Mar 24, 2024
2 parents d863c74 + a5b76c2 commit ae0bd2e
Show file tree
Hide file tree
Showing 4 changed files with 108 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<PackageReference Include="NUnit" Version="3.13.*" />
<PackageReference Include="NUnit3TestAdapter" Version="4.3.*" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.*" />
<PackageReference Include="System.Data.SqlClient" Version="4.8.*" />
<PackageReference Include="System.Data.SqlClient" Version="4.8.6" />
<PackageReference Include="System.Data.SQLite.Core" Version="1.0.117.*" />
</ItemGroup>
<ItemGroup>
Expand Down
6 changes: 6 additions & 0 deletions src/Simplify.FluentNHibernate/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog

## [3.1.0] - 2024-03-24

### Added

- Microsoft.Data.SqlClient support (#489)

## [3.0.0] - 2024-01-14

### Added
Expand Down
110 changes: 100 additions & 10 deletions src/Simplify.FluentNHibernate/ConfigurationExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public static class ConfigurationExtensions
#region Oracle Client

/// <summary>
/// Initialize Oracle connection using Oracle10 client configuration and using oracle client to connect to database
/// Initialize Oracle connection using Oracle client to connect to database
/// </summary>
/// <param name="fluentConfiguration">The fluentNHibernate configuration.</param>
/// <param name="configSectionName">Configuration section name in App.config or Web.config file.</param>
Expand All @@ -45,7 +45,7 @@ public static class ConfigurationExtensions
}

/// <summary>
/// Initialize Oracle connection using Oracle10 client configuration and using oracle client to connect to database
/// Initialize Oracle connection using Oracle client to connect to database
/// </summary>
/// <param name="fluentConfiguration">The fluentNHibernate configuration.</param>
/// <param name="configuration">The configuration containing database config section.</param>
Expand Down Expand Up @@ -106,7 +106,7 @@ public static class ConfigurationExtensions
#region ODP.NET Native

/// <summary>
/// Initialize Oracle connection using Oracle10 client configuration and using Oracle.DataAccess.dll to connect to database
/// Initialize Oracle connection using Oracle.DataAccess.dll to connect to database
/// </summary>
/// <param name="fluentConfiguration">The fluentNHibernate configuration.</param>
/// <param name="configSectionName">Configuration section name in App.config or Web.config file.</param>
Expand All @@ -130,7 +130,7 @@ public static class ConfigurationExtensions
}

/// <summary>
/// Initialize Oracle connection using Oracle10 client configuration and using Oracle.DataAccess.dll to connect to database
/// Initialize Oracle connection using Oracle.DataAccess.dll to connect to database
/// </summary>
/// <param name="fluentConfiguration">The fluentNHibernate configuration.</param>
/// <param name="configuration">The configuration containing database config section.</param>
Expand Down Expand Up @@ -194,7 +194,7 @@ public static class ConfigurationExtensions
#region ODP.NET

/// <summary>
/// Initialize Oracle connection using Oracle10 client configuration and using Oracle.ManagedDataAccess.dll to connect to database
/// Initialize Oracle connection using Oracle.ManagedDataAccess.dll to connect to database
/// </summary>
/// <param name="fluentConfiguration">The fluentNHibernate configuration.</param>
/// <param name="configSectionName">Configuration section name in App.config or Web.config file.</param>
Expand All @@ -218,7 +218,7 @@ public static class ConfigurationExtensions
}

/// <summary>
/// Initialize Oracle connection using Oracle10 client configuration and using Oracle.ManagedDataAccess.dll to connect to database
/// Initialize Oracle connection using Oracle.ManagedDataAccess.dll to connect to database
/// </summary>
/// <param name="fluentConfiguration">The fluentNHibernate configuration.</param>
/// <param name="configuration">The configuration containing database config section.</param>
Expand Down Expand Up @@ -282,7 +282,7 @@ public static class ConfigurationExtensions
#region MySQL

/// <summary>
/// Initialize MySQL connection using Standard client configuration
/// Initialize MySQL connection
/// </summary>
/// <param name="fluentConfiguration">The fluentNHibernate configuration.</param>
/// <param name="configSectionName">Configuration section name in App.config or Web.config file.</param>
Expand All @@ -306,7 +306,7 @@ public static class ConfigurationExtensions
}

/// <summary>
/// Initialize MySQL connection using Standard client configuration
/// Initialize MySQL connection
/// </summary>
/// <param name="fluentConfiguration">The fluentNHibernate configuration.</param>
/// <param name="configuration">The configuration containing database config section.</param>
Expand Down Expand Up @@ -367,7 +367,7 @@ public static class ConfigurationExtensions
#region MS SQL

/// <summary>
/// Initialize MsSQL connection using MsSql2008 client configuration
/// Initialize MsSQL connection
/// </summary>
/// <param name="fluentConfiguration">The fluentNHibernate configuration.</param>
/// <param name="configSectionName">Configuration section name in App.config or Web.config file.</param>
Expand All @@ -391,7 +391,7 @@ public static class ConfigurationExtensions
}

/// <summary>
/// Initialize MsSQL connection using MsSql2008 client configuration
/// Initialize MsSQL connection
/// </summary>
/// <param name="fluentConfiguration">The fluentNHibernate configuration.</param>
/// <param name="configuration">The configuration containing database config section.</param>
Expand Down Expand Up @@ -453,6 +453,96 @@ public static class ConfigurationExtensions

#endregion MS SQL

#region MS SQL Microsoft Driver

/// <summary>
/// Initialize MsSQL connection using Microsoft.Data.SqlClient driver
/// </summary>
/// <param name="fluentConfiguration">The fluentNHibernate configuration.</param>
/// <param name="configSectionName">Configuration section name in App.config or Web.config file.</param>
/// <param name="additionalClientConfiguration">The additional client configuration.</param>
/// <param name="dialect">The dialect.</param>
/// <exception cref="ArgumentNullException">fluentConfiguration</exception>
public static FluentConfiguration InitializeFromConfigMsSqlMicrosoftDriver(this FluentConfiguration fluentConfiguration,
string configSectionName = "DatabaseConnectionSettings",
Action<MsSqlConfiguration>? additionalClientConfiguration = null,
MsSqlDialect dialect = MsSqlDialect.MsSql2012)
{
if (fluentConfiguration == null)
throw new ArgumentNullException(nameof(fluentConfiguration));

InitializeFromConfigMsSqlMicrosoftDriver(fluentConfiguration,
new ConfigurationManagerBasedDbConnectionSettings(configSectionName),
additionalClientConfiguration,
dialect);

return fluentConfiguration;
}

/// <summary>
/// Initialize MsSQL connection using Microsoft.Data.SqlClient driver
/// </summary>
/// <param name="fluentConfiguration">The fluentNHibernate configuration.</param>
/// <param name="configuration">The configuration containing database config section.</param>
/// <param name="configSectionName">Database configuration section name in configuration.</param>
/// <param name="additionalClientConfiguration">The additional client configuration.</param>
/// <param name="dialect">The dialect.</param>
/// <exception cref="ArgumentNullException">
/// fluentConfiguration
/// or
/// configuration
/// </exception>
public static FluentConfiguration InitializeFromConfigMsSqlMicrosoftDriver(this FluentConfiguration fluentConfiguration,
IConfiguration configuration,
string configSectionName = "DatabaseConnectionSettings",
Action<MsSqlConfiguration>? additionalClientConfiguration = null,
MsSqlDialect dialect = MsSqlDialect.MsSql2012)
{
if (fluentConfiguration == null)
throw new ArgumentNullException(nameof(fluentConfiguration));

if (configuration == null)
throw new ArgumentNullException(nameof(configuration));

InitializeFromConfigMsSqlMicrosoftDriver(fluentConfiguration,
new ConfigurationBasedDbConnectionSettings(configuration, configSectionName),
additionalClientConfiguration,
dialect);

return fluentConfiguration;
}

private static void InitializeFromConfigMsSqlMicrosoftDriver(FluentConfiguration fluentConfiguration,
DbConnectionSettings settings,
Action<MsSqlConfiguration>? additionalClientConfiguration = null,
MsSqlDialect dialect = MsSqlDialect.MsSql2012)
{
var clientConfiguration = dialect switch
{
MsSqlDialect.MsSql2000 => MsSqlConfiguration.MsSql2000,
MsSqlDialect.MsSql2005 => MsSqlConfiguration.MsSql2005,
MsSqlDialect.MsSql2008 => MsSqlConfiguration.MsSql2008,
MsSqlDialect.MsSql2012 => MsSqlConfiguration.MsSql2012,
MsSqlDialect.MsSql7 => MsSqlConfiguration.MsSql7,
_ => throw new InvalidOperationException()
};

clientConfiguration.ConnectionString(c => c
.Server(settings.ServerName)
.Database(settings.DataBaseName)
.Username(settings.UserName)
.Password(settings.UserPassword ?? throw new ArgumentException($"{nameof(settings.UserPassword)} is null")))
.Driver<MicrosoftDataSqlClientDriver>();

additionalClientConfiguration?.Invoke(clientConfiguration);

fluentConfiguration.Database(clientConfiguration);

PerformCommonInitialization(fluentConfiguration, settings.ShowSql, settings.ShowSqlOutputType);
}

#endregion MS SQL Microsoft

#region PostgreSQL

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<GenerateDocumentationFile>true</GenerateDocumentationFile>

<Version>3.0</Version>
<Version>3.1</Version>

<Authors>Alexander Krylkov</Authors>
<Product>Simplify</Product>
Expand Down

0 comments on commit ae0bd2e

Please sign in to comment.