Hata Mesajı: "Database Context Not Found"
Neden "Database Context Not Found" Hatası Alıyorum?
- Context sınıfınız eksik veya yanlış yapılandırılmıştır. Entity Framework Core, veritabanı ile iletişime geçmek için `DbContext` sınıfını kullanır. Eğer bu sınıf doğru şekilde eklenmemiş veya yanlış yapılandırılmışsa, bu hata meydana gelir.
- Uygulamanızda gerekli bağımlılıklar eksiktir. Veritabanı bağlamı genellikle uygulamanın başlangıcında DI (Dependency Injection) konteynerine eklenir. Bu işlem doğru yapılmazsa, "Database Context Not Found" hatası alabilirsiniz.
- Konfigürasyon hataları: Veritabanı bağlantı dizesi veya bağlantı stringi yanlış olabilir.
Hata Nasıl Çözülür?
# 1. `DbContext` Sınıfını Kontrol Edin
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions options)
: base(options)
{
}
public DbSet Products { get; set; }
public DbSet Customers { get; set; }
}
Burada dikkat edilmesi gereken birkaç önemli nokta var:
- `DbContext` sınıfı doğru bir şekilde türetilmiş olmalı.
- `DbSet` özellikleri, veritabanı tablonuzla eşleşen modelleri içermeli.
# 2. Bağımlılığı DI Konteynerine Ekleyin
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}
Burada `UseSqlServer` ile veritabanı bağlantı dizesini belirtiyoruz. Bağlantı stringi `appsettings.json` dosyasından alınabilir. Örnek bir bağlantı dizesi şöyle olabilir:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyAppDb;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}
# 3. Veritabanı Bağlantı Dizesini Kontrol Edin
# 4. Migration (Geçiş) Kontrolü
Terminal veya komut satırında aşağıdaki komutları kullanarak gerekli migration'ları uygulayın:
dotnet ef migrations add InitialCreate
dotnet ef database update
Bu komutlar, veritabanınızı günceller ve tablonuzu oluşturur.
Sonuç: Hata Çözüldü!
ASP.NET Core ve Entity Framework Core ile çalışırken bu tür hatalarla karşılaşmak bazen sinir bozucu olabilir, ancak doğru adımlarla sorunu çözmek mümkündür. Şimdi, uygulamanızın veritabanı işlemleri sorunsuz bir şekilde çalışmaya başlayacaktır!