質問: new DbContextOptionsBuilder(); optionsBuilder.UseNpgsql(Environment.GetEnvironmentVariable("CONNECTION_STRING"); return new GoalsContext(optionsBuilder.Options); } } ``` 任意の助けをいただければ幸いです。 **更新:**私はコメントで示唆されているように、環境変数と構成に関する公式ドキュメントを読み、次のような接続文字列を返す1つのメソッドでコントローラーを作成して、変数が最初に存在するかどうかを確認しました。 ``` [HttpGet] public string GetConnectionString() { return _config["CONNECTION_STRING"]; } ``` 正しい接続文字列は確かに起動時にブラウザーに表示されますが、データベースに初期移行を追加しようとしたときに、すでに述べた例外が依然としてスローされます。 また、IDesignTimeDbContextFactoryの実装をコメントアウトして、Program.csに.AddEnvironmentVariablesメソッドへの呼び出しを手動で追加しようとしましたが(これは自動的に行われますが、まだ試したかったのですが)、どれも効果がありませんでした- Entity Framework Coreの移行でまだ接続文字列が受信されていないのに、私のコントローラーはまだ接続文字列を出力します。 つまり、簡単に言えば、はい接続文字列が存在し、それを出力することもできますが、同じ例外のために移行は依然として失敗します。
回答: 私のコメントの通り。 コマンドライン環境変数を参照してください また、変数の設定をバイパスする場合は、コンテキストの`OnConfiguring`メソッドオーバーロードを`IsConfigured` 、 `IsConfigured`れたDbOptionsパラメータの`IsConfigured`フラグを使用して、有効な構成が渡されない場合にのみファイルから読み取る必要があります。コンテキストに。 これは、他の開発者がソリューションを使用するときにも問題が発生することと、パブリックソースコントロールリポジトリに読み込んだファイルをチェックしないことをお勧めします。 t、 ユーザーの秘密を調べます