提交 e1f93499 编写于 作者: S Shay Rojansky

Suppress Npgsql obsoletion warnings

Global type mapping, connection-based auth callbacks
上级 97d2f374
......@@ -25,7 +25,9 @@ public static class NpgsqlNetTopologySuiteDbContextOptionsBuilderExtensions
Check.NotNull(optionsBuilder, nameof(optionsBuilder));
// TODO: Global-only setup at the ADO.NET level for now, optionally allow per-connection?
#pragma warning disable CS0618 // NpgsqlConnection.GlobalTypeMapper is obsolete
NpgsqlConnection.GlobalTypeMapper.UseNetTopologySuite(coordinateSequenceFactory, precisionModel, handleOrdinates, geographyAsDefault);
#pragma warning restore CS0618
var coreOptionsBuilder = ((IRelationalDbContextOptionsBuilderInfrastructure)optionsBuilder).OptionsBuilder;
......@@ -41,4 +43,4 @@ public static class NpgsqlNetTopologySuiteDbContextOptionsBuilderExtensions
return optionsBuilder;
}
}
\ No newline at end of file
}
......@@ -19,7 +19,9 @@ public static class NpgsqlNodaTimeDbContextOptionsBuilderExtensions
Check.NotNull(optionsBuilder, nameof(optionsBuilder));
// TODO: Global-only setup at the ADO.NET level for now, optionally allow per-connection?
#pragma warning disable CS0618 // NpgsqlConnection.GlobalTypeMapper is obsolete
NpgsqlConnection.GlobalTypeMapper.UseNodaTime();
#pragma warning restore CS0618
var coreOptionsBuilder = ((IRelationalDbContextOptionsBuilderInfrastructure)optionsBuilder).OptionsBuilder;
......@@ -30,4 +32,4 @@ public static class NpgsqlNodaTimeDbContextOptionsBuilderExtensions
return optionsBuilder;
}
}
\ No newline at end of file
}
......@@ -478,10 +478,9 @@ public static ModelBuilder UseIdentityColumns(this ModelBuilder modelBuilder)
INpgsqlNameTranslator? nameTranslator = null)
where TEnum : struct, Enum
{
if (nameTranslator is null)
{
nameTranslator = NpgsqlConnection.GlobalTypeMapper.DefaultNameTranslator;
}
#pragma warning disable CS0618 // NpgsqlConnection.GlobalTypeMapper is obsolete
nameTranslator ??= NpgsqlConnection.GlobalTypeMapper.DefaultNameTranslator;
#pragma warning restore CS0618
return modelBuilder.HasPostgresEnum(
schema,
......
......@@ -53,7 +53,9 @@ public class NpgsqlOptionsExtension : RelationalOptionsExtension
/// <summary>
/// The specified <see cref="ProvidePasswordCallback"/>.
/// </summary>
#pragma warning disable CS0618 // ProvidePasswordCallback is obsolete
public virtual ProvidePasswordCallback? ProvidePasswordCallback { get; private set; }
#pragma warning restore CS0618
/// <summary>
/// True if reverse null ordering is enabled; otherwise, false.
......@@ -250,6 +252,7 @@ public virtual NpgsqlOptionsExtension WithRemoteCertificateValidationCallback(Re
/// Returns a copy of the current instance with the specified <see cref="ProvidePasswordCallback"/>.
/// </summary>
/// <param name="callback">The specified callback.</param>
#pragma warning disable CS0618 // ProvidePasswordCallback is obsolete
public virtual NpgsqlOptionsExtension WithProvidePasswordCallback(ProvidePasswordCallback? callback)
{
var clone = (NpgsqlOptionsExtension)Clone();
......@@ -258,6 +261,7 @@ public virtual NpgsqlOptionsExtension WithProvidePasswordCallback(ProvidePasswor
return clone;
}
#pragma warning restore CS0618
#endregion Authentication
......
......@@ -108,25 +108,24 @@ internal virtual NpgsqlDbContextOptionsBuilder ReverseNullOrdering(bool reverseN
/// Configures the <see cref="DbContext"/> to use the specified <see cref="ProvideClientCertificatesCallback"/>.
/// </summary>
/// <param name="callback">The callback to use.</param>
public virtual NpgsqlDbContextOptionsBuilder ProvideClientCertificatesCallback(
ProvideClientCertificatesCallback? callback)
public virtual NpgsqlDbContextOptionsBuilder ProvideClientCertificatesCallback(ProvideClientCertificatesCallback? callback)
=> WithOption(e => e.WithProvideClientCertificatesCallback(callback));
/// <summary>
/// Configures the <see cref="DbContext"/> to use the specified <see cref="RemoteCertificateValidationCallback"/>.
/// </summary>
/// <param name="callback">The callback to use.</param>
public virtual NpgsqlDbContextOptionsBuilder RemoteCertificateValidationCallback(
RemoteCertificateValidationCallback? callback)
public virtual NpgsqlDbContextOptionsBuilder RemoteCertificateValidationCallback(RemoteCertificateValidationCallback? callback)
=> WithOption(e => e.WithRemoteCertificateValidationCallback(callback));
/// <summary>
/// Configures the <see cref="DbContext"/> to use the specified <see cref="ProvidePasswordCallback"/>.
/// </summary>
/// <param name="callback">The callback to use.</param>
public virtual NpgsqlDbContextOptionsBuilder ProvidePasswordCallback(
ProvidePasswordCallback? callback)
#pragma warning disable CS0618 // ProvidePasswordCallback is obsolete
public virtual NpgsqlDbContextOptionsBuilder ProvidePasswordCallback(ProvidePasswordCallback? callback)
=> WithOption(e => e.WithProvidePasswordCallback(callback));
#pragma warning restore CS0618
#endregion Authentication
......@@ -177,4 +176,4 @@ public virtual NpgsqlDbContextOptionsBuilder EnableRetryOnFailure(ICollection<st
=> ExecutionStrategy(c => new NpgsqlRetryingExecutionStrategy(c, maxRetryCount, maxRetryDelay, errorCodesToAdd));
#endregion Retrying execution strategy
}
\ No newline at end of file
}
......@@ -35,7 +35,9 @@ public class NpgsqlEnumTypeMapping : RelationalTypeMapping
throw new ArgumentException($"Enum type mappings require a CLR enum. {enumType.FullName} is not an enum.");
}
#pragma warning disable CS0618 // NpgsqlConnection.GlobalTypeMapper is obsolete
nameTranslator ??= NpgsqlConnection.GlobalTypeMapper.DefaultNameTranslator;
#pragma warning restore CS0618
_nameTranslator = nameTranslator;
_sqlGenerationHelper = sqlGenerationHelper;
......
......@@ -458,14 +458,18 @@ public virtual void LoadUserDefinedTypeMappings(ISqlGenerationHelper sqlGenerati
/// </summary>
protected virtual void SetupEnumMappings(ISqlGenerationHelper sqlGenerationHelper)
{
#pragma warning disable CS0618 // NpgsqlConnection.GlobalTypeMapper is obsolete
_adoUserTypeMappingsGetMethodInfo ??= NpgsqlConnection.GlobalTypeMapper.GetType().GetProperty("UserTypeMappings")?.GetMethod;
#pragma warning restore CS0618
if (_adoUserTypeMappingsGetMethodInfo is null)
{
return;
}
#pragma warning disable CS0618 // NpgsqlConnection.GlobalTypeMapper is obsolete
var adoUserTypeMappings = (IDictionary<string, IUserTypeMapping>)_adoUserTypeMappingsGetMethodInfo.Invoke(NpgsqlConnection.GlobalTypeMapper, Array.Empty<object>())!;
#pragma warning restore CS0618
foreach (var adoUserTypeMapping in adoUserTypeMappings.Values.OfType<IUserEnumTypeMapping>())
{
......
......@@ -977,7 +977,9 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con
{
base.OnModelCreating(modelBuilder, context);
#pragma warning disable CS0618 // NpgsqlConnection.GlobalTypeMapper is obsolete
NpgsqlConnection.GlobalTypeMapper.MapEnum<Mood>();
#pragma warning restore CS0618
((NpgsqlTypeMappingSource)context.GetService<ITypeMappingSource>()).LoadUserDefinedTypeMappings(context.GetService<ISqlGenerationHelper>());
modelBuilder.HasPostgresEnum("mood", new[] { "happy", "sad" });
......
......@@ -233,10 +233,12 @@ public class EnumContext : PoolableDbContext
static EnumContext()
{
#pragma warning disable CS0618 // NpgsqlConnection.GlobalTypeMapper is obsolete
NpgsqlConnection.GlobalTypeMapper.MapEnum<MappedEnum>("test.mapped_enum");
NpgsqlConnection.GlobalTypeMapper.MapEnum<InferredEnum>("test.inferred_enum");
NpgsqlConnection.GlobalTypeMapper.MapEnum<ByteEnum>("test.byte_enum");
NpgsqlConnection.GlobalTypeMapper.MapEnum<SchemaQualifiedEnum>("test.schema_qualified_enum");
#pragma warning restore CS0618
}
public EnumContext(DbContextOptions options) : base(options) {}
......
......@@ -9,7 +9,9 @@ protected override ITestStoreFactory TestStoreFactory
protected override IServiceCollection AddServices(IServiceCollection serviceCollection)
{
#pragma warning disable CS0618 // NpgsqlConnection.GlobalTypeMapper is obsolete
NpgsqlConnection.GlobalTypeMapper.UseNetTopologySuite();
#pragma warning restore CS0618
return base.AddServices(serviceCollection)
.AddEntityFrameworkNpgsqlNetTopologySuite();
......@@ -24,4 +26,4 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con
// TODO: #1232
// protected override bool CanExecuteQueryString => true;
}
\ No newline at end of file
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册