使用EF Core Tools 6.0.11执行add-migration时MySQL连接失败
问题:使用EF Core Tools 6.0.11执行
add-migration Initial时遇MySQL连接失败及版本不匹配警告 问题背景
完成学校作业时必须使用Microsoft.EntityFrameworkCore.Tools 6.0.11版本,但执行add-migration Initial命令时,出现「无法连接到指定的任何MySQL主机」错误,同时控制台提示EF工具版本(6.0.11)低于运行时版本(7.0.2)。
控制台错误日志
PM> add-migration Initial Build started... Build succeeded. The Entity Framework tools version '6.0.11' is older than that of the runtime '7.0.2'. Update the tools for the latest features and bug fixes. MySqlConnector.MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts. at MySqlConnector.Core.ServerSession.OpenTcpSocketAsync(ConnectionSettings cs, ILoadBalancer loadBalancer, Activity activity, IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/Core/ServerSession.cs:line 1146 at MySqlConnector.Core.ServerSession.ConnectAsync(ConnectionSettings cs, MySqlConnection connection, Int32 startTickCount, ILoadBalancer loadBalancer, Activity activity, IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/Core/ServerSession.cs:line 438 at MySqlConnector.Core.ConnectionPool.ConnectSessionAsync(MySqlConnection connection, String logMessage, Int32 startTickCount, Activity activity, IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/Core/ConnectionPool.cs:line 403 at MySqlConnector.Core.ConnectionPool.ConnectSessionAsync(MySqlConnection connection, String logMessage, Int32 startTickCount, Activity activity, IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/Core/ConnectionPool.cs:line 408 at MySqlConnector.Core.ConnectionPool.GetSessionAsync(MySqlConnection connection, Int32 startTickCount, Activity activity, IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/Core/ConnectionPool.cs:line 98 at MySqlConnector.Core.ConnectionPool.GetSessionAsync(MySqlConnection connection, Int32 startTickCount, Activity activity, IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/Core/ConnectionPool.cs:line 128 at MySqlConnector.MySqlConnection.CreateSessionAsync(ConnectionPool pool, Int32 startTickCount, Activity activity, Nullable`1 ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlConnection.cs:line 929 at MySqlConnector.MySqlConnection.OpenAsync(Nullable`1 ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlConnection.cs:line 423 at MySqlConnector.MySqlConnection.Open() in /_/src/MySqlConnector/MySqlConnection.cs:line 382 at Microsoft.EntityFrameworkCore.ServerVersion.AutoDetect(String connectionString) at EFSamurai.SamuraiContext.OnConfiguring(DbContextOptionsBuilder optionsBuilder) in E:\School\WebServices\EFSamurai\EFSamurai\SamuraiContext.cs:line 14 at Microsoft.EntityFrameworkCore.DbContext.get_ContextServices() at Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider() at Microsoft.EntityFrameworkCore.DbContext.Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<System.IServiceProvider>.get_Instance() at Microsoft.EntityFrameworkCore.Infrastructure.Internal.InfrastructureExtensions.GetService[TService](IInfrastructure`1 accessor) at Microsoft.EntityFrameworkCore.Infrastructure.AccessorExtensions.GetService[TService](IInfrastructure`1 accessor) at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(Func`1 factory) at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(String contextType) at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.AddMigration(String name, String outputDir, String contextType, String namespace) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(String name, String outputDir, String contextType, String namespace) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigration.<>c__DisplayClass0_0.<.ctor>b__0() at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.<Execute>b__0() at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action) Unable to connect to any of the specified MySQL hosts. PM>
SamuraiContext类代码
using Microsoft.EntityFrameworkCore; namespace EFSamurai { public class SamuraiContext : DbContext { public DbSet<Samurai> Samurais {get; set;} public DbSet<Quote> Quotes { get; set;} public DbSet<Battle> Battles { get; set;} protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { var connectionString = "server = localhost; port = 3310; database = samurai-db; user=databanken; password=databanken"; optionsBuilder.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString)); } } }
内容的提问来源于stack exchange,提问作者Dylan Lucas
相关产品推荐
相关产品推荐

