我使用dotnetcore和實體框架核心創建一個項目。我使用MySql數據庫,並且我添加了對SapientGuardian.EntityFrameworkCore.MySql
版本7.1.19
的依賴。EntityFramework核心數據庫.EnsureCreated不創建數據庫
我創建了一個SeedData
類,其中初始化我的數據庫:
public class SeedData
{
public static void Initialize(IServiceProvider serviceProvider)
{
using (MyDbContext context = new MyDbContext(serviceProvider.GetRequiredService<DbContextOptions<MyDbContext>>())) {
context.Database.EnsureCreated();
}
}
}
種子類召喚:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
// Other code
SeedData.Initialize(app.ApplicationServices);
}
和服務的配置:
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>>();
}
當我開始該項目我在EnsureCreate
電話上遇到異常。異常消息說Authentication failed
,但如果我手動創建數據庫(沒有表),我的連接字符串工作正常,EnsureCreated
只爲我的實體創建表。
怎麼了?這是SapientGuardian.EntityFrameworkCore.MySql
的問題?
erikscandola,你解決了嗎? –
@JohnSmith,還不是 – erikscandola
@erikscandola你有一個空的數據庫是否存在? – bravohex