質問: 私はコンソールプロジェクトでSQLiteデータベースファイルを管理するためにEF Coreを使用しています。 データベースを作成すると、ファイルはbinフォルダに作成されます。したがって、基本的には`MyProjectName\bin\Debug\netcoreapp1.1\FooDatabase.sqlite`です。 私はこれを変更したい。 私は`Directory.SetCurrentDirectory`と`IHostingEnvironment.ContentRootPath`設定しようとし`IHostingEnvironment.ContentRootPath` 。何も動作しません。 データベースを作成するディレクトリをプログラムで設定するにはどうすればよいですか?
回答: `Microsoft.Data.Sqlite` 2.0(未リリース)では、 `Directory.SetCurrentDirectory()`がトリックを行います。 それまでは、接続文字列に絶対パスを使用することをおすすめします。 ``` var builder = new SqliteConnectionStringBuilder(relativeConnectionString); bilder.DataSource = Path.Combine(dataDirectory, bilder.DataSource); var absoluteConnectionString = builder.ToString(); ``` あなたが*本当に*内部力学を試し*て*みたいのであれば、それはお勧めできません。 ``` // .NET Framework AppDomain.CurrentDomain.SetData("DataDirectory", myDataDirectory); // .NET Core Environment.SetEnvironmentVariable("ADONET_DATA_DIR", myDataDirectory); ```