diff --git a/src/Pgvector.EntityFrameworkCore/Pgvector.EntityFrameworkCore.csproj b/src/Pgvector.EntityFrameworkCore/Pgvector.EntityFrameworkCore.csproj index eaf6b13..a68a9d8 100644 --- a/src/Pgvector.EntityFrameworkCore/Pgvector.EntityFrameworkCore.csproj +++ b/src/Pgvector.EntityFrameworkCore/Pgvector.EntityFrameworkCore.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/Pgvector.EntityFrameworkCore/VectorDataSourceConfigurationPlugin.cs b/src/Pgvector.EntityFrameworkCore/VectorDataSourceConfigurationPlugin.cs new file mode 100644 index 0000000..8ee4276 --- /dev/null +++ b/src/Pgvector.EntityFrameworkCore/VectorDataSourceConfigurationPlugin.cs @@ -0,0 +1,10 @@ +using Npgsql; +using Npgsql.EntityFrameworkCore.PostgreSQL.Infrastructure; + +namespace Pgvector.EntityFrameworkCore; + +public class VectorDataSourceConfigurationPlugin : INpgsqlDataSourceConfigurationPlugin +{ + public void Configure(NpgsqlDataSourceBuilder npgsqlDataSourceBuilder) + => npgsqlDataSourceBuilder.UseVector(); +} diff --git a/src/Pgvector.EntityFrameworkCore/VectorDbContextOptionsBuilderExtensions.cs b/src/Pgvector.EntityFrameworkCore/VectorDbContextOptionsBuilderExtensions.cs index 1b04c88..52925e5 100644 --- a/src/Pgvector.EntityFrameworkCore/VectorDbContextOptionsBuilderExtensions.cs +++ b/src/Pgvector.EntityFrameworkCore/VectorDbContextOptionsBuilderExtensions.cs @@ -1,5 +1,4 @@ using Microsoft.EntityFrameworkCore.Infrastructure; -using Npgsql; using Npgsql.EntityFrameworkCore.PostgreSQL.Infrastructure; using Pgvector.EntityFrameworkCore; using Pgvector.Npgsql; @@ -10,11 +9,6 @@ public static class VectorDbContextOptionsBuilderExtensions { public static NpgsqlDbContextOptionsBuilder UseVector(this NpgsqlDbContextOptionsBuilder optionsBuilder) { - // not ideal, but how Npgsql.EntityFrameworkCore.PostgreSQL does it -#pragma warning disable CS0618 - NpgsqlConnection.GlobalTypeMapper.UseVector(); -#pragma warning restore CS0618 - var coreOptionsBuilder = ((IRelationalDbContextOptionsBuilderInfrastructure)optionsBuilder).OptionsBuilder; var extension = coreOptionsBuilder.Options.FindExtension() diff --git a/src/Pgvector.EntityFrameworkCore/VectorDbContextOptionsExtension.cs b/src/Pgvector.EntityFrameworkCore/VectorDbContextOptionsExtension.cs index 570e4dc..5da3dca 100644 --- a/src/Pgvector.EntityFrameworkCore/VectorDbContextOptionsExtension.cs +++ b/src/Pgvector.EntityFrameworkCore/VectorDbContextOptionsExtension.cs @@ -2,6 +2,7 @@ using Microsoft.EntityFrameworkCore.Query; using Microsoft.EntityFrameworkCore.Storage; using Microsoft.Extensions.DependencyInjection; +using Npgsql.EntityFrameworkCore.PostgreSQL.Infrastructure; namespace Pgvector.EntityFrameworkCore; @@ -13,7 +14,8 @@ public class VectorDbContextOptionsExtension : IDbContextOptionsExtension public void ApplyServices(IServiceCollection services) { - new EntityFrameworkRelationalServicesBuilder(services) + new EntityFrameworkNpgsqlServicesBuilder(services) + .TryAdd() .TryAdd(); services.AddSingleton();