Entity Framework Core MariaDB 自動讀取資料庫版本號碼

一直以來,筆者在 ASP.NET Core 中連接 MariaDB 資料庫時都需要先指定版本號碼,例如版本為 11.4.2:
    
var builder = WebApplication.CreateBuilder(args);

var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
var serverVersion = new MariaDbServerVersion(new Version(11, 4, 2));
builder.Services.AddDbContext<ApplicationDbContext>(options =>
    {
        options.UseMySql(connectionString, serverVersion);
    }
);

var app = builder.Build();
    

就只是覺得有點麻煩,但也只是想說不同的資料庫有不同的設定,也沒想太多。

直到今天才發現其實有一招很好用,可以使用 AutoDetect 來自動讀取資料庫版本,就不需要手動設定,或是需要改到設定檔避免資料庫版本更新還要改程式碼了:
    
var builder = WebApplication.CreateBuilder(args);

var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext<ApplicationDbContext>(options =>
    {
        options.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString));
    }
);

var app = builder.Build();
    

留言