Parametry połączeniaConnection Strings

Większość dostawców bazy danych wymaga pewnego rodzaju parametry połączenia do łączenia z bazą danych.Most database providers require some form of connection string to connect to the database. Czasami te parametry połączenia zawiera poufne informacje, które muszą być chronione.Sometimes this connection string contains sensitive information that needs to be protected. Również może być konieczna zmiana parametrów połączenia, ponieważ przenoszenie aplikacji między środowiskami, takie jak programowania, testowania i produkcji.You may also need to change the connection string as you move your application between environments, such as development, testing, and production.

Aplikacji .NET framework.NET Framework Applications

Aplikacji .NET framework, takich jak WinForms, WPF, konsola i platformy ASP.NET 4 ma połączenie i przetestowanej wzorzec ciągu..NET Framework applications, such as WinForms, WPF, Console, and ASP.NET 4, have a tried and tested connection string pattern. Parametry połączenia należy dodać kod do pliku App.config aplikacji (Web.config, jeśli używasz programu ASP.NET).The connection string should be added to your applications App.config file (Web.config if you are using ASP.NET). Jeśli parametry połączenia zawiera poufne informacje, takie jak nazwa użytkownika i hasło, chronić zawartość przy użyciu pliku konfiguracji konfiguracji chronionej.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>

Porada

providerName Ustawienie nie jest wymagane na parametry połączenia programu EF Core przechowywane w pliku App.config, ponieważ dostawca bazy danych jest skonfigurowana za pomocą kodu.The providerName setting is not required on EF Core connection strings stored in App.config because the database provider is configured via code.

Możesz odczytywać parametry połączenia za pomocą ConfigurationManager interfejsu API w sieci w kontekście OnConfiguring metody.You can then read the connection string using the ConfigurationManager API in your context's OnConfiguring method. Może być konieczne dodanie odwołania do System.Configuration zestawu struktury, aby można było używać tego interfejsu 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);
    }
}

Platforma uniwersalna systemu Windows (UWP)Universal Windows Platform (UWP)

Parametry połączenia w aplikacji platformy uniwersalnej systemu Windows są zazwyczaj połączenia bazy danych SQLite, po prostu określający nazwę pliku lokalnego.Connection strings in a UWP application are typically a SQLite connection that just specifies a local filename. Są zazwyczaj nie zawierają informacji poufnych, a nie powinny być można zmienić, ponieważ aplikacja jest wdrażana.They typically do not contain sensitive information, and do not need to be changed as an application is deployed. W efekcie te parametry połączenia są zwykle wystarczające pozostać w kodzie, jak pokazano poniżej.As such, these connection strings are usually fine to be left in code, as shown below. Jeśli chcesz przenieść je poza kod to platformy uniwersalnej systemu Windows obsługuje pojęcie ustawień, zobacz ustawienia aplikacji w sekcji dokumentacji platformy uniwersalnej systemu Windows Aby uzyskać szczegółowe informacje.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

W programie ASP.NET Core jest bardzo elastyczny system konfiguracji i parametry połączenia mogą być przechowywane w appsettings.json, zmienną środowiskową, magazynu wpisów tajnych użytkownika lub innego źródła konfiguracji.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. Zobacz konfiguracji w sekcji dokumentacji platformy ASP.NET Core Aby uzyskać więcej informacji.See the Configuration section of the ASP.NET Core documentation for more details. W poniższym przykładzie przedstawiono parametry połączenia przechowywana w 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;"
  },
}

Kontekst jest zazwyczaj skonfigurowany w Startup.cs przy użyciu parametrów połączenia jest odczytywana z konfiguracji.The context is typically configured in Startup.cs with the connection string being read from configuration. Uwaga GetConnectionString() metoda szuka wartości konfiguracji, w których kluczem jest 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")));
}