Entity framework core 执行添加迁移网络核心3时出错
我正试图用Entity Framework Core和net Core 3建立一个新的数据库/迁移,但下一个错误是什么。添加迁移初始值 你能帮我吗 Program.csEntity 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
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();
});
}
}