C# orController.cs 使用制度; 使用System.Collections.Generic; 使用System.Linq; 使用System.Threading.Tasks; 使用Microsoft.AspNetCore.Mvc; 使用VideoClubSharp.DAO; 使用VideoClubSharp.Models; //有关为空项目启用MVC的更多信息,请访问https://go.microsoft.com/fwlink/?LinkID=397860 命名空间VideoClubSharp.Controllers { 公共类ActorController:控制器 { 公共IActionResult索引() { MysqlContext Data=HttpContext.RequestServices.GetService(typeof(MysqlContext))作为MysqlContext; 返回视图(Data.GetActorMOs().ToList()); } } } //我在主页中添加了一个ActionLink,以查看//数据库中的参与者,但显示下一个错误: 处理请求时发生未处理的异常。 ArgumentNullException:值不能为null。 参数名称:connectionString Microsoft.EntityFrameworkCore.Utilities.Check.NotEmpty(字符串值,字符串参数名称) ArgumentNullException:值不能为null。参数名称:connectionString Microsoft.EntityFrameworkCore.Utilities.Check.NotEmpty(字符串值,字符串参数名称) Microsoft.EntityFrameworkCore.Infrastructure.RelationalOptionsExtension.WithConnectionString(string connectionString) Microsoft.EntityFrameworkCore.MySQLDbContextOptionsExtensions.UseMySQL(dbContextOptionsBuilderOptionsBuilder、字符串连接字符串、操作MySQLOptionsAction) Startup.cs中的VideoClubSharp.Startup.b_uu4_1(dbcontextoptions生成器选项) + services.AddDbContext(options=>options.UseMySQL(Configuration.GetConnectionString(“MysqlConnection”)); Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions+c__DisplayClass1_0.b__0(IServiceProvider p,DBContextOptions Builder b) Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.DbContextOptions工厂(IServiceProvider应用程序服务提供程序,操作选项操作) Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions+c__DisplayClass10_0.b__0(IServiceProvider p) Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite FactoryCallSite,ServiceProviderEngineScope作用域) Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor.VisitCallSite(IServiceCallSite callSite,Target参数) Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite ScopedCallSite,ServiceProviderEngineScope作用域) Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor.VisitCallSite(IServiceCallSite callSite,Target参数) Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite ConstructorCallSite,ServiceProviderEngineScope作用域) Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor.VisitCallSite(IServiceCallSite callSite,Target参数) Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite ScopedCallSite,ServiceProviderEngineScope作用域) Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor.VisitCallSite(IServiceCallSite callSite,Target参数) Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine+c\u DisplayClass1\u 0.b\u 0(ServiceProviderEngineScope作用域) Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(类型serviceType,ServiceProviderEngineScope ServiceProviderEngineScope) Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(类型serviceType) ActorController.cs中的VideoClubSharp.Controller.ActorController.Index() + MysqlContext Data=HttpContext.RequestServices.GetService(typeof(MysqlContext))作为MysqlContext; lambda_方法(闭包、对象、对象[]) Microsoft.Extensions.Internal.ObjectMethodExecutor.Execute(对象目标,对象[]参数) Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor+SyncActionResultExecutor.Execute(IActionResultTypeMapper映射器、ObjectMethodExecutor执行器、对象控制器、对象[]参数) Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeActionMethodAsync() Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync() Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext上下文) Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(ref状态Next、ref范围、ref对象状态、ref bool已完成) Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeInnerFilterAsync() Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter() Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext) Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(ref State Next、ref Scope Scope、ref object State、ref bool isCompleted) Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync() Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync() Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext HttpContext) Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext上下文) Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext上下文)

C# orController.cs 使用制度; 使用System.Collections.Generic; 使用System.Linq; 使用System.Threading.Tasks; 使用Microsoft.AspNetCore.Mvc; 使用VideoClubSharp.DAO; 使用VideoClubSharp.Models; //有关为空项目启用MVC的更多信息,请访问https://go.microsoft.com/fwlink/?LinkID=397860 命名空间VideoClubSharp.Controllers { 公共类ActorController:控制器 { 公共IActionResult索引() { MysqlContext Data=HttpContext.RequestServices.GetService(typeof(MysqlContext))作为MysqlContext; 返回视图(Data.GetActorMOs().ToList()); } } } //我在主页中添加了一个ActionLink,以查看//数据库中的参与者,但显示下一个错误: 处理请求时发生未处理的异常。 ArgumentNullException:值不能为null。 参数名称:connectionString Microsoft.EntityFrameworkCore.Utilities.Check.NotEmpty(字符串值,字符串参数名称) ArgumentNullException:值不能为null。参数名称:connectionString Microsoft.EntityFrameworkCore.Utilities.Check.NotEmpty(字符串值,字符串参数名称) Microsoft.EntityFrameworkCore.Infrastructure.RelationalOptionsExtension.WithConnectionString(string connectionString) Microsoft.EntityFrameworkCore.MySQLDbContextOptionsExtensions.UseMySQL(dbContextOptionsBuilderOptionsBuilder、字符串连接字符串、操作MySQLOptionsAction) Startup.cs中的VideoClubSharp.Startup.b_uu4_1(dbcontextoptions生成器选项) + services.AddDbContext(options=>options.UseMySQL(Configuration.GetConnectionString(“MysqlConnection”)); Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions+c__DisplayClass1_0.b__0(IServiceProvider p,DBContextOptions Builder b) Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.DbContextOptions工厂(IServiceProvider应用程序服务提供程序,操作选项操作) Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions+c__DisplayClass10_0.b__0(IServiceProvider p) Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite FactoryCallSite,ServiceProviderEngineScope作用域) Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor.VisitCallSite(IServiceCallSite callSite,Target参数) Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite ScopedCallSite,ServiceProviderEngineScope作用域) Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor.VisitCallSite(IServiceCallSite callSite,Target参数) Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite ConstructorCallSite,ServiceProviderEngineScope作用域) Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor.VisitCallSite(IServiceCallSite callSite,Target参数) Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite ScopedCallSite,ServiceProviderEngineScope作用域) Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor.VisitCallSite(IServiceCallSite callSite,Target参数) Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine+c\u DisplayClass1\u 0.b\u 0(ServiceProviderEngineScope作用域) Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(类型serviceType,ServiceProviderEngineScope ServiceProviderEngineScope) Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(类型serviceType) ActorController.cs中的VideoClubSharp.Controller.ActorController.Index() + MysqlContext Data=HttpContext.RequestServices.GetService(typeof(MysqlContext))作为MysqlContext; lambda_方法(闭包、对象、对象[]) Microsoft.Extensions.Internal.ObjectMethodExecutor.Execute(对象目标,对象[]参数) Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor+SyncActionResultExecutor.Execute(IActionResultTypeMapper映射器、ObjectMethodExecutor执行器、对象控制器、对象[]参数) Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeActionMethodAsync() Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync() Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext上下文) Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(ref状态Next、ref范围、ref对象状态、ref bool已完成) Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeInnerFilterAsync() Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter() Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext) Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(ref State Next、ref Scope Scope、ref object State、ref bool isCompleted) Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync() Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync() Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext HttpContext) Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext上下文) Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext上下文),c#,mysql,.net,database-connection,visual-studio-2019,C#,Mysql,.net,Database Connection,Visual Studio 2019,我认为这在MacOs上是不可能的。我是如何做到这一点的是安装Docker并使用一个包含SQL server的容器。然后可以连接到此服务器 也许以下链接对您有用:我认为这在MacOs上是不可能的。我是如何做到这一点的是安装Docker并使用一个包含SQL server的容器。YouC // Data Access Object -> MysqlContext.cs : using System; using System.Linq; using Syste

我认为这在MacOs上是不可能的。我是如何做到这一点的是安装Docker并使用一个包含SQL server的容器。然后可以连接到此服务器


也许以下链接对您有用:

我认为这在MacOs上是不可能的。我是如何做到这一点的是安装Docker并使用一个包含SQL server的容器。YouC

    // Data Access Object -> MysqlContext.cs :

    using System;
    using System.Linq;
    using System.Collections.Generic;
    using System.Threading.Tasks;
    using Microsoft.Extensions.DependencyInjection;
    using Microsoft.AspNetCore.Http;
    using Microsoft.Extensions.Configuration;
    using Microsoft.EntityFrameworkCore;
    using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
    using MySql.Data.MySqlClient;
    using VideoClubSharp.Models;


    namespace VideoClubSharp.DAO
    {
        public class MysqlContext : IdentityDbContext<AplicationUser>
        {
            public string ConnectionString { get; set; }

            public MysqlContext(DbContextOptions<MysqlContext> options) : base(options)
            {
                this.Database.EnsureCreated();
            }

            protected override void OnModelCreating(ModelBuilder builder)
            {
                base.OnModelCreating(builder);
            }

            private MySqlConnection GetConnection()
            {
                return new MySqlConnection(ConnectionString);
            }

            public List<ActorMO> GetActorMOs()
            {
                var Result = new List<ActorMO>();

                using(MySqlConnection db = GetConnection())
                {
                    db.Open();
                    MySqlCommand query = new MySqlCommand("select * from Actor", db);
                    using (MySqlDataReader row = query.ExecuteReader())
                    {
                        while (row.Read())
                        {
                            int idActor = row.GetInt32("idActor");
                            string FullName = row.GetString("FullName");
                            char Sex = row.GetChar("Sex");
                            Result.Add(new ActorMO(idActor, FullName, Sex));
                        }
                    }
                }

                return Result;
            }
        }
    }

    // Models -> ActorMO & AplicationUser;

    // ActorMO.cs:

    using System;

    namespace VideoClubSharp.Models
    {
        public class ActorMO 
        {
            public int idActor { get; set; }
            public string FullName { get; set; }
            public char Sex { get; set; }

            public ActorMO(int idActor, string FullName, char Sex) 
            {
                this.idActor = idActor;
                this.FullName = FullName;
                this.Sex = Sex;
            }
        }
    }


    // AplicationUser.cs: 

    using System;
    using Microsoft.AspNetCore.Identity;


    namespace VideoClubSharp.Models
    {
        public class AplicationUser : IdentityUser
        {
            public AplicationUser()
            {
            }
        }
    }

    // appsettings.json
    {
      "Logging": {
        "IncludeScopes":  false,
        "LogLevel": {
          "Default": "Warning"
        }
      },
      "AllowedHosts": "*",
      "ConnectionString" :  {
        "MysqlConnection" :  "server@localhost; userid=root; password=****; port=3306: datanase=VideoClub; sslmode=none;"
      }
    }

    // Startup.cs

    namespace VideoClubSharp
    {
        public class Startup
        {
            public Startup(IConfiguration configuration)
            {
                Configuration = configuration;
            }

            public IConfiguration Configuration { get; }

            // This method gets called by the runtime. Use this method to add services to the container.
            public void ConfigureServices(IServiceCollection services)
            {
                services.Configure<CookiePolicyOptions>(options =>
                {
                    // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                    options.CheckConsentNeeded = context => true;
                    options.MinimumSameSitePolicy = SameSiteMode.None;
                });

                services.AddDbContext<MysqlContext>(options => options.UseMySQL(Configuration.GetConnectionString("MysqlConnection")));
                services.AddIdentity<AplicationUser, IdentityRole>().AddEntityFrameworkStores<MysqlContext>().AddDefaultTokenProviders();
                //services.Add(new ServiceDescriptor(typeof(mysqlContext), new mysqlContext(Configuration.GetConnectionString("MysqlConnection"))));
                services.AddMvc();
                services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            }

            // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
            public void Configure(IApplicationBuilder app, IHostingEnvironment env)
            {
                if (env.IsDevelopment())
                {
                    app.UseDeveloperExceptionPage();
                }
                else
                {
                    app.UseExceptionHandler("/Home/Error");
                    app.UseHsts();
                }

                app.UseHttpsRedirection();
                app.UseStaticFiles();
                app.UseCookiePolicy();

                app.UseMvc(routes =>
                {
                    routes.MapRoute(
                        name: "default",
                        template: "{controller=Home}/{action=Index}/{id?}");
                });
            }
        }
    }

    // ActorController.cs     

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Mvc;
    using VideoClubSharp.DAO;
    using VideoClubSharp.Models;

    // For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860

    namespace VideoClubSharp.Controllers
    {
        public class ActorController : Controller
        {
            public IActionResult Index()
            {
                MysqlContext Data = HttpContext.RequestServices.GetService(typeof(MysqlContext)) as MysqlContext;
                return View(Data.GetActorMOs().ToList()) ;
            }
        }
    }



     //And I've put an ActionLink in Home page, to see the Actors from //Database, but show the next error:


    An unhandled exception occurred while processing the request.

    ArgumentNullException: Value cannot be null.
    Parameter name: connectionString
    Microsoft.EntityFrameworkCore.Utilities.Check.NotEmpty(string value, string parameterName)



    ArgumentNullException: Value cannot be null. Parameter name: connectionString
    Microsoft.EntityFrameworkCore.Utilities.Check.NotEmpty(string value, string parameterName)
    Microsoft.EntityFrameworkCore.Infrastructure.RelationalOptionsExtension.WithConnectionString(string connectionString)
    Microsoft.EntityFrameworkCore.MySQLDbContextOptionsExtensions.UseMySQL(DbContextOptionsBuilder optionsBuilder, string connectionString, Action<MySQLDbContextOptionsBuilder> MySQLOptionsAction)
    VideoClubSharp.Startup.<ConfigureServices>b__4_1(DbContextOptionsBuilder options) in Startup.cs
    +
                services.AddDbContext<MysqlContext>(options => options.UseMySQL(Configuration.GetConnectionString("MysqlConnection")));
    Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions+<>c__DisplayClass1_0<TContextService, TContextImplementation>.<AddDbContext>b__0(IServiceProvider p, DbContextOptionsBuilder b)
    Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.DbContextOptionsFactory<TContext>(IServiceProvider applicationServiceProvider, Action<IServiceProvider, DbContextOptionsBuilder> optionsAction)
    Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions+<>c__DisplayClass10_0<TContextImplementation>.<AddCoreServices>b__0(IServiceProvider p)
    Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite, ServiceProviderEngineScope scope)
    Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor<TArgument, TResult>.VisitCallSite(IServiceCallSite callSite, TArgument argument)
    Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProviderEngineScope scope)
    Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor<TArgument, TResult>.VisitCallSite(IServiceCallSite callSite, TArgument argument)
    Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProviderEngineScope scope)
    Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor<TArgument, TResult>.VisitCallSite(IServiceCallSite callSite, TArgument argument)
    Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProviderEngineScope scope)
    Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor<TArgument, TResult>.VisitCallSite(IServiceCallSite callSite, TArgument argument)
    Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine+<>c__DisplayClass1_0.<RealizeService>b__0(ServiceProviderEngineScope scope)
    Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
    Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
    VideoClubSharp.Controllers.ActorController.Index() in ActorController.cs
    +
                MysqlContext Data = HttpContext.RequestServices.GetService(typeof(MysqlContext)) as MysqlContext;
    lambda_method(Closure , object , object[] )
    Microsoft.Extensions.Internal.ObjectMethodExecutor.Execute(object target, object[] parameters)
    Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor+SyncActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, object controller, object[] arguments)
    Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeActionMethodAsync()
    Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync()
    Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext context)
    Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)
    Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeInnerFilterAsync()
    Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter()
    Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context)
    Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)
    Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync()
    Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync()
    Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext)
    Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
    Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

ArgumentNullException: Value cannot be null. Parameter name: connectionString
Microsoft.EntityFrameworkCore.Utilities.Check.NotEmpty(string value, string parameterName)
at Microsoft.EntityFrameworkCore.Infrastructure.RelationalOptionsExtension.WithConnectionString(string connectionString)
at Microsoft.EntityFrameworkCore.MySQLDbContextOptionsExtensions.UseMySQL(DbContextOptionsBuilder optionsBuilder, string connectionString, Action<MySQLDbContextOptionsBuilder> MySQLOptionsAction)
at VideoClubSharp.Startup.<ConfigureServices>b__4_1(DbContextOptionsBuilder options) in Startup.cs
// appsettings.json
{
    ...
    "ConnectionStrings": {
        "MysqlConnection": "server=localhost; userid=root; password=****; port=3306; database=VideoClub; sslmode=none;"
    }
}