Tworzę projekt z rdzeniem framtu dotnetcore i encji. Używam bazy danych MySql i dodałem zależność do SapientGuardian.EntityFrameworkCore.MySql
wersji 7.1.19
.EntityFramework Baza danych Core.EnsureCreated nie tworzy bazy danych
Stworzyłem klasę SeedData
gdzie zainicjować mojej bazy danych:
public class SeedData
{
public static void Initialize(IServiceProvider serviceProvider)
{
using (MyDbContext context = new MyDbContext(serviceProvider.GetRequiredService<DbContextOptions<MyDbContext>>())) {
context.Database.EnsureCreated();
}
}
}
Wezwanie do materiału siewnego klasa:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
// Other code
SeedData.Initialize(app.ApplicationServices);
}
i konfiguracji usługi:
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>>();
}
kiedy zaczynam projekt otrzymuję wyjątek od połączenia EnsureCreate
. Komunikat o wyjątku mówi: Authentication failed
, ale jeśli ręcznie utworzę bazę danych (bez tabel), mój ciąg połączenia działa poprawnie, a EnsureCreated
po prostu tworzy tabele dla moich jednostek.
Co jest nie tak? To jest problem z SapientGuardian.EntityFrameworkCore.MySql
?
erikscandola, rozwiązałeś to? –
@JohnSmith, jeszcze nie – erikscandola
@erikscandola Czy masz pustą bazę danych istnieje? – bravohex