eri*_*ola 8 c# mysql entity-framework-core .net-core
我用dotnetcore和实体框架核心创建了一个项目.我使用MySql数据库,我添加了对SapientGuardian.EntityFrameworkCore.MySql版本的依赖7.1.19.
我创建了一个SeedData初始化我的数据库的类:
public class SeedData
{
public static void Initialize(IServiceProvider serviceProvider)
{
using (MyDbContext context = new MyDbContext(serviceProvider.GetRequiredService<DbContextOptions<MyDbContext>>())) {
context.Database.EnsureCreated();
}
}
}
Run Code Online (Sandbox Code Playgroud)
对种子类的调用:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
// Other code
SeedData.Initialize(app.ApplicationServices);
}
Run Code Online (Sandbox Code Playgroud)
和服务配置:
public void ConfigureServices(IServiceCollection services)
{
// Other code
// Add database
services.AddDbContext<MyDbContext>(options => {
options.UseMySQL(Configuration.GetConnectionString("DefaultConnection"));
});
services.AddScoped<Microsoft.EntityFrameworkCore.Infrastructure.IDbContextOptions, Microsoft.EntityFrameworkCore.DbContextOptions<MyDbContext>>();
}
Run Code Online (Sandbox Code Playgroud)
当我启动项目时,我在EnsureCreate通话时遇到异常.异常消息说Authentication failed但如果我手动创建数据库(没有表),我的连接字符串工作正常,EnsureCreated只需为我的实体创建表.
怎么了?这是一个问题SapientGuardian.EntityFrameworkCore.MySql?
小智 2
我遇到了你所描述的同样的问题。看起来 SapientGuardian 提供程序在此版本中的实现可能不完整。
SapientGuardian 项目的自述文件实际上建议使用更积极维护的提供程序,例如Pomelo.EntityFrameworkCore.MySql。所以我把我的项目转向了 Pomelo。现在,对 EnsureCreated 的调用按预期创建了数据库,并且没有身份验证失败异常。
| 归档时间: |
|
| 查看次数: |
1715 次 |
| 最近记录: |