gpt4 book ai didi

c# - 无法连接MySql、.Net Core Api

转载 作者:行者123 更新时间:2023-11-29 15:25:56 24 4
gpt4 key购买 nike

我是新手,无法将 API 与数据库连接,我正在使用 .Net Core 3MySql Server 8.0.18 ,我还下载了 Connector/Net 8.0.18 和 Visual Studio 2019。这是我的字符串连接:

"Server=localhost,3306;Database=portaldb;user=****;password=****"

我的 Startup.cs:

public void ConfigureServices(IServiceCollection services)
{
var connection = Configuration.GetConnectionString(Defaultconnection);
var mappingConfig = new MapperConfiguration(mc => {
mc.AddProfile(new MappingProfile());
});
var mapper = mappingConfig.CreateMapper();
services.AddControllers();
services.AddCors(options =>
{
options.AddPolicy(MyAllowSpecificOrigins,
builder =>
{
builder.AllowAnyHeader().AllowAnyOrigin().AllowAnyMethod();
});
});
services.AddSingleton(mapper);
services.AddTransient<IDbContext, PortalContext>();
services.AddTransient<ISqlRepository, SqlRepository>();
services.AddDbContext<PortalContext>(options => options.UseMySQL(connection));
}

我的DbContext:

public class PortalContext : DbContext, IDbContext
{
public PortalContext(DbContextOptions options) : base(options)
{

}
private DbSet<UsersModel> Users { get; set; }

private DbSet<CandidatesModel> Candidates { get; set; }

private DbSet<UserTypesModel> UserTypes { get; set; }

private DbSet<CompetenciesModel> Competencies { get; set; }

private DbSet<JobsModel> Jobs { get; set; }

private DbSet<SkillsAssessmentsModel> SkillsAssessments { get; set; }

private DbSet<SkillSetModel> Skills { get; set; }

///some methods
}

这里是我的 DbContext 和我安装的软件包的使用的一些屏幕截图,我不确定这些是否正确,或者我是否没有以正确的方式使用它们。

Usings of my DbContext

Packages

MySql installations

现在我收到此错误

"Internal connection fatal error."

我尝试使用不同的连接字符串得到不同的错误,并尝试搜索答案,但几乎没有关于 MySql 的信息,很多关于 Sql server 的信息,但没有MySql

编辑我更改了字符串连接和启动,但仍然收到错误

: 'Method 'get_Info' in type 'MySql.Data.EntityFrameworkCore.Infraestructure.MySQLOptionsExtension' from assembly 'MySql.Data.EntityFrameworkCore, Version=8.0.18.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' does not have an implementation.'

编辑2好吧,我读到 Microsoft.EntityFrameworkCore 3 它与 MySql.Data.EntityFrameworkCore for Entity Framework - 8.0.18 不兼容,所以我回滚到 Microsoft. EntityFrameworkCore 2.1,现在我得到无法连接到任何指定的 MySQL 主机。

最佳答案

好的,正如 Panagiotis Kanavos 提到的,我使用了错误的连接字符串,所以我将其更改为:

Server=localhost;Database=portaldb;user=***;password=***

正如东东所说,我正在使用options.UseSqlServer(connection)而不是services.AddDbContext<PortalContext>(options => options.UseMySQL(connection));

这样我只需要更改一些版本,Microsoft.EntityFrameworkCore 3它与 MySql.Data.EntityFrameworkCore for Entity Framework - 8.0.18 不兼容,我回滚到 Microsoft.EntityFrameworkCore 2.1现在可以了。

关于c# - 无法连接MySql、.Net Core Api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59093970/

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