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();