Scaffold-DbContext - CultureNotFoundException: グローバル化不変モードでは不変カルチャのみがサポートされます。par'name' en-us は無効です質問する

Scaffold-DbContext - CultureNotFoundException: グローバル化不変モードでは不変カルチャのみがサポートされます。par'name' en-us は無効です質問する
Scaffold-DbContext "connection string" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Entities 

上記のコマンドを実行すると、次のエラーが発生します。.NET 7 と 8 プレビューの両方で試しました。

プロジェクトに追加しました<InvariantGlobalization>true</InvariantGlobalization>が、何も起こりませんでした。

<PropertyGroup>
    <TargetFramework>net7.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>

System.Globalization.CultureNotFoundException: グローバル化不変モードでは不変カルチャのみがサポートされます。https://aka.ms/GlobalizationInvariantMode詳細については、(パラメータ 'name') en-us は無効なカルチャ識別子です。System.Globalization.CultureInfo.GetCultureInfo(String name)、Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource 1 retry, SqlConnectionOverrides overrides) at Microsoft.Data.SqlClient.SqlConnection.Open(SqlConnectionOverrides overrides) at Microsoft.Data.SqlClient.SqlConnection.Open() at Microsoft.EntityFrameworkCore.SqlServer.Scaffolding.Internal.SqlServerDatabaseModelFactory.Create(DbConnection connection, DatabaseModelFactoryOptions options) at Microsoft.EntityFrameworkCore.SqlServer.Scaffolding.Internal.SqlServerDatabaseModelFactory.Create(String connectionString, DatabaseModelFactoryOptions options) at Microsoft.EntityFrameworkCore.Scaffolding.Internal.ReverseEngineerScaffolder.ScaffoldModel(String connectionString, DatabaseModelFactoryOptions databaseOptions, ModelReverseEngineerOptions modelOptions, ModelCodeGenerationOptions codeOptions) at Microsoft.EntityFrameworkCore.Design.Internal.DatabaseOperations.ScaffoldContext(String provider, String connectionString, String outputDir, String outputContextDir, String dbContextClassName, IEnumerable1 schemas, IEnumerable 1 tables, String modelNamespace, String contextNamespace, Boolean useDataAnnotations, Boolean overwriteFiles, Boolean useDatabaseNames, Boolean suppressOnConfiguring, Boolean noPluralize) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScaffoldContextImpl(String provider, String connectionString, String outputDir, String outputDbContextDir, String dbContextClassName, IEnumerable1 schemaFilters, IEnumerable 1 tableFilters, String modelNamespace, String contextNamespace, Boolean useDataAnnotations, Boolean overwriteFiles, Boolean useDatabaseNames, Boolean suppressOnConfiguring, Boolean noPluralize) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScaffoldContext.<>c__DisplayClass0_0.<.ctor>b__0() at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_01.b__0()、Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action) を参照してください。グローバリゼーション不変モードでは、不変カルチャのみがサポートされます。https://aka.ms/GlobalizationInvariantMode詳細については、(パラメータ 'name') en-us は無効なカルチャ識別子です。

ベストアンサー1

.csprojプロジェクトのファイルに変更を加え、にInvariantGlobalization属性を追加する必要があります。falsePropertyGroup

こんな感じです。

<PropertyGroup>
  <TargetFramework>net8.0</TargetFramework>
  <ImplicitUsings>enable</ImplicitUsings>
  <InvariantGlobalization>false</InvariantGlobalization>
</PropertyGroup>

おすすめ記事