Entity framework core 执行添加迁移网络核心3时出错

Entity framework core 执行添加迁移网络核心3时出错,entity-framework-core,asp.net-core-webapi,.net-core-3.0,Entity Framework Core,Asp.net Core Webapi,.net Core 3.0,我正试图用Entity Framework Core和net Core 3建立一个新的数据库/迁移,但下一个错误是什么。添加迁移初始值 你能帮我吗 Program.cs public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public stat

我正试图用Entity Framework Core和net Core 3建立一个新的数据库/迁移,但下一个错误是什么。添加迁移初始值 你能帮我吗

Program.cs

public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }
Startup.cs

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

        public IConfiguration Configuration { get; }
        private void ConfigureJson(MvcNewtonsoftJsonOptions obj)
        {
            obj.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            obj.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;

        }
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            string contactConnection = Configuration.GetConnectionString("MyConnection");
            services.AddDbContext<ApplicationContactDbContext>(options =>
                    options.UseSqlServer(contactConnection)
            );
            services.AddMvc()
                   .SetCompatibilityVersion(CompatibilityVersion.Version_3_0)
                   .AddNewtonsoftJson(ConfigureJson);
           services.AddCors(options =>
            {
                options.AddPolicy("EnableCORS", builder => { builder.WithOrigins("*").AllowAnyHeader().AllowAnyMethod(); });
            });

            services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
             .AddJwtBearer(options =>
             {
                 options.TokenValidationParameters = new TokenValidationParameters
                 {
                     ValidateIssuer = true,
                     ValidateAudience = true,
                     ValidateLifetime = true,
                     ValidateIssuerSigningKey = true,
                     ValidIssuer = "http://localhost:5000",
                     ValidAudience = "http://localhost:5000",
                     IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("superSecretKeyYoSoyExitoso@345"))
                 };
             });
            services.AddControllers();

        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
    }
这就是错误:

System.ArgumentNullException:值不能为null。 参数名称:connectionString 在Microsoft.EntityFrameworkCore.Utilities.Check.NotEmptyString值中,字符串参数名称 在Microsoft.EntityFrameworkCore.SqlServerDbContextOptionsExtensions.UseSqlServerDbContextOptionsBuilder选项生成器中,字符串连接字符串,操作1 sqlServerOptionsAction 在Elapoint.ContactExtension.MicroService.Startup.c\uuuuu显示Class5\u 0.b\uuuuuuu0dbContextOptionsBuilder选项,位于E:\PersonalesX\Proyectos\PV5\NetCore\Extensions\Contacts\Api\Startup.cs:第37行 在Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.c_uuDisplayClass1_02.b_uuu0IServiceProvider p中,DBContextOptions Builder b 在Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.DbContextOptions工厂[TContext]IServiceProvider应用程序服务提供程序中,操作2选项操作 在Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.c__DisplayClass10_01.b__0IServiceProvider p 在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactoryFactoryCallSite factoryCallSite中,RuntimeResolverContext上下文 在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMainServiceCallSite callSite callSite中,target参数 在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCacheServiceCallSite调用站点,RuntimeResolverContext上下文,ServiceProviderEngineScope serviceProviderEngine,RuntimeResolverLock锁类型 在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScopeCacheServiceCallSite singletonCallSite,RuntimeResolverContext上下文 在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteServiceCallSite callSite中,target参数 在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.ResolveServiceCallSite callSite中,ServiceProviderEngineScope作用域 在Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.c__DisplayClass1_0.b__0服务ProviderEngine作用域 在Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetServiceType serviceType中,ServiceProviderEngineScope ServiceProviderEngineScope 位于Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetServiceType serviceType 在Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredServiceIServiceProvider提供程序中,键入serviceType 位于Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T]IServiceProvider提供程序 位于Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.c__101.b__10_1IServiceProvider p 在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactoryFactoryCallSite factoryCallSite中,RuntimeResolverContext上下文 在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMainServiceCallSite callSite callSite中,target参数 在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCacheServiceCallSite调用站点,RuntimeResolverContext上下文,ServiceProviderEngineScope serviceProviderEngine,RuntimeResolverLock锁类型 在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScopeCacheServiceCallSite singletonCallSite,RuntimeResolverContext上下文 在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteServiceCallSite callSite中,target参数 在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitIEnumerableIEnumerableCallSite enumerableCallSite enumerableCallSite,RuntimeResolverContext上下文 在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMainServiceCallSite callSite callSite中,target参数 在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCacheServiceCallSite调用站点,RuntimeResolverContext上下文,ServiceProviderEngineScope serviceProviderEngine,RuntimeResolverLock锁类型 在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScopeCacheServiceCallSite singletonCallSite,RuntimeResolverContext上下文 在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteServiceCallSite callSite中,target参数 在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.ResolveServiceCallSite callSite中,ServiceProviderEngineScope作用域 在Microsoft.Extensions.DependencyInjectio n、 ServiceLookup.DynamicServiceProviderEngine.c__DisplayClass1_0.b__0服务ProviderEngineeScope作用域 在Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetServiceType serviceType中,ServiceProviderEngineScope ServiceProviderEngineScope 位于Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetServiceType serviceType 在Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredServiceIServiceProvider提供程序中,键入serviceType 位于Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T]IServiceProvider提供程序 位于Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetServices[T]IServiceProvider提供程序 位于Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.FindContextTypes 位于Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.FindContextTypeString名称 位于Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContextString contextType 位于Microsoft.EntityFrameworkCore.Design.Internal.MigrationOperations.AddMigrationString名称、字符串outputDir、字符串contextType 在Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImplString名称、String outputDir、String contextType 在Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigration.c__DisplayClass0_1.b_0 在Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.c\u DisplayClass3\u 01.b\u 0中 在Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.ExecuteAction操作中 值不能为null。
参数名称:connectionString

在您的appsettings文件中,尝试将connectionString重命名为connectionString

我有相同的问题基于您收到的错误,这似乎是配置问题,而不是实体框架的特定问题。从应用程序设置来看,这个答案看起来是正确的。缺少的特定部分是连接字符串末尾的s。
public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }
        private void ConfigureJson(MvcNewtonsoftJsonOptions obj)
        {
            obj.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            obj.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;

        }
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            string contactConnection = Configuration.GetConnectionString("MyConnection");
            services.AddDbContext<ApplicationContactDbContext>(options =>
                    options.UseSqlServer(contactConnection)
            );
            services.AddMvc()
                   .SetCompatibilityVersion(CompatibilityVersion.Version_3_0)
                   .AddNewtonsoftJson(ConfigureJson);
           services.AddCors(options =>
            {
                options.AddPolicy("EnableCORS", builder => { builder.WithOrigins("*").AllowAnyHeader().AllowAnyMethod(); });
            });

            services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
             .AddJwtBearer(options =>
             {
                 options.TokenValidationParameters = new TokenValidationParameters
                 {
                     ValidateIssuer = true,
                     ValidateAudience = true,
                     ValidateLifetime = true,
                     ValidateIssuerSigningKey = true,
                     ValidIssuer = "http://localhost:5000",
                     ValidAudience = "http://localhost:5000",
                     IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("superSecretKeyYoSoyExitoso@345"))
                 };
             });
            services.AddControllers();

        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
    }