gpt4 book ai didi

c# - 在mac上使用Pomelo.EntityFrameworkCore.MySql通过.net 6连接到mysql

转载 作者:行者123 更新时间:2023-12-03 08:04:55 29 4
gpt4 key购买 nike

我正在尝试使用 Pomelo.EntityFrameworkCore.MySql 来连接到我的 MySQL 数据库。我正在使用 .NET 6,它从项目中删除startup.cs,并将所有内容合并到Program.cs中。

以下代码是我尝试连接到数据库的方式,但它给了我一个服务器版本错误。

var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");


var serverVersion = new MySqlServerVersion(new Version(8, 0, 28));

builder.Services.AddDbContext<BirdProjectContext>(
dbContextOptions => dbContextOptions
.UseMySQL(connectionString, serverVersion)
// The following three options help with debugging, but should
// be changed or removed for production.
.LogTo(Console.WriteLine, LogLevel.Information)
.EnableSensitiveDataLogging()
.EnableDetailedErrors()
);

我得到的错误是:

CS1503:参数 3:无法从“Microsoft.EntityFrameworkCore.MySqlServerVersion”转换为“System.Action

如果我尝试从参数中删除服务器版本,则会收到另一个错误:

CS0121:以下方法或属性之间的调用不明确:“Microsoft.EntityFrameworkCore.MySQLDbContextOptionsExtensions.UseMySQL(Microsoft.EntityFrameworkCore.DbContextOptionsBuilder, string, System.Action )”和'Microsoft.EntityFrameworkCore.MySQLDbContextOptionsExtensions.UseMySQL(Microsoft.EntityFrameworkCore.DbContextOptionsBuilder, 字符串, System.Action )'

这个项目使用的是 SQL,现在我正在尝试将其转换为 MySQL。

这些是我安装到项目中的软件包:

Nuget Packages

最佳答案

EntityFramework有一种动态获取数据库服务器版本的方法,试试这个方法:

builder.Services.AddDbContext<BirdProjectContext>(
dbContextOptions => dbContextOptions
.UseMySQL(connectionString, ServerVersion.AutoDetect(connectionString))
// The following three options help with debugging, but should
// be changed or removed for production.
.LogTo(Console.WriteLine, LogLevel.Information)
.EnableSensitiveDataLogging()
.EnableDetailedErrors()
);

关于c# - 在mac上使用Pomelo.EntityFrameworkCore.MySql通过.net 6连接到mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72670847/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com