EF Core update-database System.Globalization.CultureNotFoundException:

Mai*_*ozo 5 c# entity-framework-core .net-8.0

When I execute update-database in package manager console to create a database, I get an error:

PM> update-database Build started... Build succeeded. System.Globalization.CultureNotFoundException: Only the invariant culture is supported in globalization-invariant mode. See https://aka.ms/GlobalizationInvariantMode for more information. (Parameter 'name') en-us is an invalid culture identifier. at System.Globalization.CultureInfo.GetCultureInfo(String name) at Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource1 retry, SqlConnectionOverrides overrides) at Microsoft.Data.SqlClient.SqlConnection.Open(SqlConnectionOverrides overrides) at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerConnection.OpenDbConnection(Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternal(Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected) at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.<>c__DisplayClass18_0.<Exists>b__0(DateTime giveUp) at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.<>c__DisplayClass12_02.b__0(DbContext _, TState s) at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func3 operation, Func3 verifySucceeded) at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, TState state, Func2 operation, Func2 verifySucceeded) at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists(Boolean retryOnNotExists) at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists() at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists() at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration) at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String connectionString, String contextType) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration, String connectionString, String contextType) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_0.<.ctor>b__0() at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action) Only the invariant culture is supported in globalization-invariant mode. See https://aka.ms/GlobalizationInvariantMode for more information. (Parameter 'name') en-us is an invalid culture identifier. PM>

I use Microsoft Visual Studio Community 2022 (64-bit) - Preview Version 17.8.0 Preview 1.0 | Asp.net core Web API | EF Core 7.0.11

My context:

using Componente.Pessoa;
using Microsoft.EntityFrameworkCore;
using System.Diagnostics;

public class APIContext : DbContext, IPessoaContext
{
    public DbSet<Pessoa> dbPessoas { get; set; }
    public DbSet<Cliente> dbClientes { get; set; }
    public DbSet<Endereco> dbEnderecos { get; set; }

    public IConfiguration _configuration;

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer("Server=localhost\\SQLEXPRESS;Initial Catalog=OmnesProducao;;Integrated Security=True;TrustServerCertificate=True;User Id=sa;Password=pass;", builder =>
        {
        });
        base.OnConfiguring(optionsBuilder);

    }

    
    public APIContext()
    {
        
    }

    public APIContext(DbContextOptions<APIContext> options) : base(options)
    {
    }



    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        PessoaContext.CarregaModel(modelBuilder);
    }
}


Run Code Online (Sandbox Code Playgroud)

My Program.cs

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.

builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

var app = builder.Build();

AppContext.SetSwitch("System.Globalization.Invariant", true);

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.UseHttpsRedirection();

app.UseAuthorization();

app.MapControllers();

app.Run();
Run Code Online (Sandbox Code Playgroud)

小智 8

您的项目配置为使用不变全球化

检查您的项目文件中是否有此属性

{
  "runtimeOptions": {
     "configProperties": {
        "System.Globalization.Invariant": true
     }
  }
}
Run Code Online (Sandbox Code Playgroud)

并将其设置为False

你的项目文件属性大多是这样的

{
  "runtimeOptions": {
     "configProperties": {
        "System.Globalization.Invariant": false
     }
  }
}
Run Code Online (Sandbox Code Playgroud)