接続文字列Connection Strings

ほとんどのデータベース プロバイダーでは、何らかの形式のデータベースに接続する接続文字列が必要です。Most database providers require some form of connection string to connect to the database. 場合によってこの接続文字列には、保護する必要がある機密情報が含まれています。Sometimes this connection string contains sensitive information that needs to be protected. また、アプリケーションを開発、テスト、および運用環境などの環境間で移動すると、接続文字列を変更する必要があります。You may also need to change the connection string as you move your application between environments, such as development, testing, and production.

.NET framework アプリケーション.NET Framework Applications

WinForms、WPF、コンソール、および ASP.NET 4 などの .NET framework アプリケーションでは、実証済みの接続文字列のパターンがあります。.NET Framework applications, such as WinForms, WPF, Console, and ASP.NET 4, have a tried and tested connection string pattern. 接続文字列は、アプリケーションの App.config ファイル (Web.config ASP.NET を使用している場合) に追加する必要があります。The connection string should be added to your applications App.config file (Web.config if you are using ASP.NET). 接続文字列には、ユーザー名やパスワードなどの機密情報が含まれている場合は、使用して、構成ファイルの内容を保護することができます保護された構成します。If your connection string contains sensitive information, such as username and password, you can protect the contents of the configuration file using Protected Configuration.

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <connectionStrings>
    <add name="BloggingDatabase"
         connectionString="Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" />
  </connectionStrings>
</configuration>

ヒント

providerName設定は、コードを使用して、データベース プロバイダーが構成されているために、App.config に格納されている EF Core 接続文字列では必要ありません。The providerName setting is not required on EF Core connection strings stored in App.config because the database provider is configured via code.

使用して、接続文字列を読み取ることができますし、 ConfigurationManager API では、コンテキストのOnConfiguringメソッド。You can then read the connection string using the ConfigurationManager API in your context's OnConfiguring method. 参照を追加する必要があります、System.Configurationこの API を使用できるフレームワーク アセンブリ。You may need to add a reference to the System.Configuration framework assembly to be able to use this API.

public class BloggingContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
      optionsBuilder.UseSqlServer(ConfigurationManager.ConnectionStrings["BloggingDatabase"].ConnectionString);
    }
}

ユニバーサル Windows プラットフォーム (UWP)Universal Windows Platform (UWP)

UWP アプリケーションで接続文字列は、通常、ローカルのファイル名をだけを指定する SQLite 接続です。Connection strings in a UWP application are typically a SQLite connection that just specifies a local filename. 通常は、機密情報が含まれていないと、アプリケーションを展開するように変更する必要はありません。They typically do not contain sensitive information, and do not need to be changed as an application is deployed. そのため、これらの接続文字列は、次に示すようにコードでは、通常は問題ありません。As such, these connection strings are usually fine to be left in code, as shown below. コードの外に移動する場合、UWP がサポートの設定の概念を参照してください、 UWP ドキュメントのアプリ設定セクション詳細についてはします。If you wish to move them out of code then UWP supports the concept of settings, see the App Settings section of the UWP documentation for details.

public class BloggingContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
            optionsBuilder.UseSqlite("Data Source=blogging.db");
    }
}

ASP.NET CoreASP.NET Core

ASP.NET Core 構成システムは非常に柔軟性と接続文字列に格納されるappsettings.json、環境変数、user secret ストア、または別の構成ソース。In ASP.NET Core the configuration system is very flexible, and the connection string could be stored in appsettings.json, an environment variable, the user secret store, or another configuration source. 参照してください、 ASP.NET Core のドキュメントの構成セクションの詳細。See the Configuration section of the ASP.NET Core documentation for more details. 次の例では、接続文字列に格納されているappsettings.jsonします。The following example shows the connection string stored in appsettings.json.

{
  "ConnectionStrings": {
    "BloggingDatabase": "Server=(localdb)\\mssqllocaldb;Database=EFGetStarted.ConsoleApp.NewDb;Trusted_Connection=True;"
  },
}

コンテキストが構成されている通常Startup.cs構成から読み取られる接続文字列に置き換えます。The context is typically configured in Startup.cs with the connection string being read from configuration. 注、GetConnectionString()メソッドはキーが構成値を検索ConnectionStrings:<connection string name>します。Note the GetConnectionString() method looks for a configuration value whose key is ConnectionStrings:<connection string name>.

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<BloggingContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("BloggingDatabase")));
}