Aracılığıyla paylaş


Bağlantı Dizeleri

Çoğu veritabanı sağlayıcısı veritabanına bağlanmak için bir tür bağlantı dizesi gerektirir. Bazen bu bağlantı dizesi korunması gereken hassas bilgiler içerir. Uygulamanızı geliştirme, test ve üretim gibi ortamlar arasında taşırken de bağlantı dizesi değiştirmeniz gerekebilir.

ASP.NET Core

ASP.NET Core'da yapılandırma sistemi çok esnektir ve bağlantı dizesi bir ortam değişkeni, kullanıcı gizli dizisi deposu veya başka bir yapılandırma kaynağında appsettings.jsondepolanabilir. Daha fazla ayrıntı için ASP.NET Core belgelerinin Yapılandırma bölümüne bakın.

Örneğin, veritabanı parolanızı depolamak için Gizli Dizi Yöneticisi aracını kullanabilir ve ardından iskelede yalnızca Name=<database-alias>içeren bir bağlantı dizesi kullanabilirsiniz.

dotnet user-secrets set ConnectionStrings:YourDatabaseAlias "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=YourDatabase"
dotnet ef dbcontext scaffold Name=ConnectionStrings:YourDatabaseAlias Microsoft.EntityFrameworkCore.SqlServer

Veya aşağıdaki örnekte içinde depolanan bağlantı dizesi gösterilmektedirappsettings.json.

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

Ardından bağlam genellikle yapılandırmadan okunan bağlantı dizesi ile yapılandırılırStartup.cs. yönteminin GetConnectionString() anahtarı olan bir yapılandırma değeri aray olduğuna ConnectionStrings:<connection string name>dikkat edin. Bu uzantı yöntemini kullanmak için Microsoft.Extensions.Configuration ad alanını içeri aktarmanız gerekir.

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

WinForms & WPF Uygulamaları

WinForms, WPF ve ASP.NET 4 uygulamalarının denenmiş ve test edilmiş bir bağlantı dizesi deseni vardır. bağlantı dizesi uygulamanızın App.config dosyasına (ASP.NET kullanıyorsanız Web.config) eklenmelidir. bağlantı dizesi kullanıcı adı ve parola gibi hassas bilgiler içeriyorsa, Korumalı Yapılandırma'yı kullanarak yapılandırma dosyasının içeriğini koruyabilirsiniz.

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

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

Bahşiş

providerName Veritabanı sağlayıcısı kod aracılığıyla yapılandırıldığından, ayar App.config'de depolanan EF Core bağlantı dizesi gerekli değildir.

Ardından bağlamınızın OnConfiguring yöntemindeki API'yi kullanarak ConfigurationManager bağlantı dizesi okuyabilirsiniz. Bu API'yi kullanabilmek için System.Configuration çerçeve derlemesine bir başvuru eklemeniz gerekebilir.

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);
    }
}

Evrensel Windows Platformu (UWP)

UWP uygulamasındaki Bağlan ion dizeleri genellikle yalnızca yerel bir dosya adı belirten bir SQLite bağlantısıdır. Bunlar genellikle hassas bilgiler içermez ve uygulama dağıtılırken değiştirilmesi gerekmez. Bu nedenle, bu bağlantı dizesi genellikle aşağıda gösterildiği gibi kodda bırakılabilir. Bunları kod dışına taşımak istiyorsanız UWP ayarlar kavramını destekler. Ayrıntılar için UWP belgelerinin Uygulama Ayarlar bölümüne bakın.

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");
    }
}