筆記下關於 Option 'trusted_connection' not supported.
的坑
例外
MYSQL Option 'trusted_connection' not supported.
結論
總之改用下面這段就可以了
Server=127.0.0.1;Port=3306;Uid=root;Pwd=;Database=Csharp_Hotel_DB
於原本比較一下應該是不能有空格?
Server=127.0.0.1; Database=Csharp_Hotel_DB; Port=3306; Uid=root; Pwd=
補充
- 基本參照官方多資料庫的說明文件 Entity Framework Core
- 需額外安裝套件
Volo.Abp.EntityFrameworkCore.MySQL
DbContextFactory
裡面改用UseMySql
並提供 MySql 版本參數 (Select Version();
)UseMySql(configuration.GetConnectionString("Hotel"), ServerVersion.Parse("8.0.33-0ubuntu0.22.04.2"));
EntityFrameworkCoreModule
裡面加上options.Configure<HotelDbContext>(o => { o.UseMySQL(); });
DbContextFactory
public HotelDbContext CreateDbContext(string[] args)
{
var configuration = BuildConfiguration();
var builder = new DbContextOptionsBuilder<HotelDbContext>()
.UseMySql(configuration.GetConnectionString("Hotel"), ServerVersion.Parse("8.0.33-0ubuntu0.22.04.2"));
return new HotelDbContext(builder.Options);
}
EntityFrameworkCoreModule
context.Services.AddAbpDbContext<HotelDbContext>(options =>
{
options.AddDefaultRepositories(includeAllEntities: true);
});
Configure<AbpDbContextOptions>(options =>
{
/* The main point to change your DBMS.
* See also TestMigrationsDbContextFactory for EF Core tooling. */
options.UseSqlServer();
// for MySql DbContext
options.Configure<HotelDbContext>(o => { o.UseMySQL(); });
});
參照
Entity Framework Core MySQL | Documentation Center | ABP.IO
How To Check MySQL Version: 5 Easy Commands {Ubuntu, Linux} (phoenixnap.com)