VerbindungszeichenfolgenConnection Strings

Die meisten Datenbankanbieter erfordern eine Form der Verbindungszeichenfolge für die Verbindung mit der Datenbank.Most database providers require some form of connection string to connect to the database. In einigen Fällen enthält diese Verbindungszeichenfolge vertraulichen Informationen, der geschützt werden muss.Sometimes this connection string contains sensitive information that needs to be protected. Sie müssen möglicherweise auch die Verbindungszeichenfolge ändern, wie Sie Ihre Anwendung zwischen Umgebungen, wie z. B. Entwicklungs-, Test- und Produktionszwecke verschieben.You may also need to change the connection string as you move your application between environments, such as development, testing, and production.

.NET Framework-Anwendungen.NET Framework Applications

.NET Framework-Anwendungen, z. B. WinForms, WPF-Konsole und ASP.NET 4 haben ein Zeichenfolgenmuster wiederholt und getestete Verbindung..NET Framework applications, such as WinForms, WPF, Console, and ASP.NET 4, have a tried and tested connection string pattern. Die Verbindungszeichenfolge sollte auf die Datei "App.config" der Anwendung ("Web.config" bei Verwendung von ASP.NET) hinzugefügt werden.The connection string should be added to your applications App.config file (Web.config if you are using ASP.NET). Die Verbindungszeichenfolge enthält vertraulichen Informationen wie Benutzername und Kennwort können Sie den Inhalt der Konfigurationsdatei mit schützen geschützte Konfiguration.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>

Tipp

Die providerName Einstellung ist nicht erforderlich, EF Core Verbindungszeichenfolgen in App.config gespeichert werden, da der Datenbankanbieter über Code konfiguriert ist.The providerName setting is not required on EF Core connection strings stored in App.config because the database provider is configured via code.

Sie können dann gelesen, die Verbindungszeichenfolge mithilfe der ConfigurationManager -API in des Kontexts OnConfiguring Methode.You can then read the connection string using the ConfigurationManager API in your context's OnConfiguring method. Sie müssen möglicherweise einen Verweis auf Hinzufügen der System.Configuration Framework-Assembly, um diese API verwenden zu können.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);
    }
}

Universelle Windows-Plattform (UWP)Universal Windows Platform (UWP)

Verbindungszeichenfolgen in einer uwp-Anwendung sind in der Regel eine SQLite-Verbindung, die nur einen lokalen Dateinamen angibt.Connection strings in a UWP application are typically a SQLite connection that just specifies a local filename. Sie in der Regel nicht vertraulichen Informationen enthalten und müssen nicht geändert werden, da eine Anwendung bereitgestellt wird.They typically do not contain sensitive information, and do not need to be changed as an application is deployed. Daher sind diese Verbindungszeichenfolgen in der Regel gut, verbleiben soll, im Code, wie unten dargestellt.As such, these connection strings are usually fine to be left in code, as shown below. Wenn Sie sie aus Code heraus zu verschieben möchten. Klicken Sie dann universelle Windows-Plattform unterstützt das Konzept der Einstellungen, finden Sie unter der App-Einstellungen-Abschnitt der Dokumentation UWP Details.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

Das Konfigurationssystem in ASP.NET Core ist sehr flexibel und die Verbindungszeichenfolge gespeichert werden appsettings.json, eine Umgebungsvariable, den geheimen Speicher des Benutzers oder einer anderen Konfigurationsquelle angibt.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. Finden Sie unter der Konfigurationsabschnitt der Dokumentation zu ASP.NET Core Weitere Details.See the Configuration section of the ASP.NET Core documentation for more details. Das folgende Beispiel zeigt die Verbindungszeichenfolge, die in gespeicherten 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;"
  },
}

Der Kontext wird in der Regel in konfiguriert Startup.cs mit der Verbindungszeichenfolge aus der Konfiguration gelesen wird.The context is typically configured in Startup.cs with the connection string being read from configuration. Beachten Sie die GetConnectionString() Methode sucht für einen Konfigurationswert fest, dessen Schlüssel 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")));
}