私はdotnetcoreとエンティティフレームワークコアでプロジェクトを作成します。私はMySQLデータベースを使用して、SapientGuardian.EntityFrameworkCore.MySql
バージョン7.1.19
に依存関係を追加しました。EntityFrameworkコアDatabase.EnsureCreatedはデータベースを作成しません
私は自分のデータベースを初期化SeedData
クラスを作成しました:私は起動すると
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>>();
}
:
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);
}
とサービスの構成をプロジェクト私はEnsureCreate
の呼び出しで例外を取得します。例外メッセージはAuthentication failed
と言いますが、手動でデータベース(テーブルなし)を作成した場合、接続文字列は正常に動作し、EnsureCreated
は単に自分のエンティティのテーブルを作成します。
どういうところが間違っていますか? SapientGuardian.EntityFrameworkCore.MySql
の問題ですか?
erikscandola、あなたはそれを解決しましたか? –
@JohnSmith、まだ – erikscandola
@erikscandola空のデータベースがありますか? – bravohex