Я создаю проект с ядром инфраструктуры dotnetcore и entity. Я использую базу данных MySql, и я добавил зависимость от SapientGuardian.EntityFrameworkCore.MySql
версии 7.1.19
.База данных EntityFramework Core.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