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