From ded1fba4988d62d2b93c331ad845bf3b34bd8e81 Mon Sep 17 00:00:00 2001 From: Marco Minerva Date: Tue, 28 Jul 2026 12:37:11 +0200 Subject: [PATCH] Flexible DbContext SQL provider selection and config Replaced AddSqlServer with AddDbContext for ApplicationDbContext, enabling dynamic provider selection based on the connection string. Now uses UseAzureSql for Azure SQL targets and UseSqlServer with retry logic otherwise. Configured all queries to use NoTracking for improved performance. --- SqlDatabaseVectorSearch/Program.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/SqlDatabaseVectorSearch/Program.cs b/SqlDatabaseVectorSearch/Program.cs index afdbb93..e80fea6 100644 --- a/SqlDatabaseVectorSearch/Program.cs +++ b/SqlDatabaseVectorSearch/Program.cs @@ -43,8 +43,22 @@ builder.Services.ConfigureHttpJsonOptions(options => builder.Services.AddSingleton(TimeProvider.System); -builder.Services.AddSqlServer(builder.Configuration.GetConnectionString("SqlConnection"), optionsAction: options => +builder.Services.AddDbContext(options => { + var connectionString = builder.Configuration.GetConnectionString("SqlConnection")!; + + if (connectionString.Contains("database.windows.net")) + { + options.UseAzureSql(connectionString); + } + else + { + options.UseSqlServer(connectionString, sqlOptions => + { + sqlOptions.EnableRetryOnFailure(maxRetryCount: 5, maxRetryDelay: TimeSpan.FromSeconds(10), errorNumbersToAdd: null); + }); + } + options.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking); });