Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 37510|Yanıt: 1

[Kaynak] EF 6 Code-First'te veritabanı başlatma stratejisi

[Bağlantıyı kopyala]
Yayınlandı 17.04.2019 15:56:46 | | |
Code-First uygulamasını ilk kez çalıştırdıktan sonra zaten bir veritabanı oluşturdunuz, peki ikinci kez başlattıktan sonra veritabanı nedir? Uygulama her çalıştırıldığında yeni bir veritabanı mı oluşturuluyor? Peki ya üretim ortamı? Alan modelini değiştirdiğimde veritabanını nasıl değiştirebilirim? Bu senaryoları yönetmek için veritabanı başlatma politikalarından birini kullanmanız gerekir.

Dört farklı veritabanı başlatma stratejisi vardır:

  • CreateDatabaseIfNotExists:Butemerrütbaşlatma prosedürü. Adından da anlaşılacağı gibi, yapılandırmaya göre mevcut değilse veritabanı oluşturur. Ancak, model sınıfını değiştirip uygulamayı bu başlatıcıyla çalıştırırsanız, bir istisna oluşur.
  • DropCreateDatabaseIfModelChanges: Model sınıfınız (varlık sınıfı) değiştiyse, bu başlatıcı mevcut veritabanını silip yenisini oluşturur. Yani model sınıfları değiştiğinde veritabanı şemalarını sürdürmek konusunda endişelenmenize gerek yok.
  • DropCreateDatabaseAlways: Adından da anlaşılacağı gibi, bu başlatıcı, uygulama çalıştırdığınızda mevcut veritabanını siler; model sınıfınız değişmiş olup olmamasına bakılmaksızın. Bu, her uygulama çalıştırdığınızda yeni bir veritabanı ihtiyacınız olduğunda, örneğin bir uygulama geliştirirken faydalıdır.
  • Özel veritabanı başlatıcısı: Yukarıdaki gereksinimlerinizi karşılamazsa veya yukarıdaki başlatıcıyı diğer veritabanlarını başlatma işlemi için kullanmak isterseniz kendi özel başlatıcınızı da oluşturabilirsiniz.

Yukarıdaki veritabanı başlatma stratejilerinden birini kullanmak için, aşağıdaki gibi Veritabanı bağlam sınıfındaki sınıfı kullanarak DB Başlatıcısını ayarlamanız gerekir:




Ayrıca, aşağıda gösterildiği gibi, başlatıcılardan birini devralarak özel bir veritabanı başlatıcısı oluşturabilirsiniz:




Yukarıdaki örnekte, SchoolDBInitializer, CreateDatabaseIfNotExists'ten türetilen özel bir başlatıcı sınıfıdır. Bu, veritabanı başlatma kodunu bağlam sınıfından ayırır.

Yapılandırma dosyasında DB Başlatıcısını kur

Ayrıca veritabanı başlatıcısını yapılandırma dosyasında da ayarlayabilirsiniz. Örneğin, app.config'de varsayılan başlangıç değer ayarını ayarlamak için:




Aşağıdaki gibi özel bir veritabanı başlatıcısı kurabilirsiniz:




DB Başlatıcısını Kapat

Uygulamanız için veritabanı başlatıcısını kapatabilirsiniz.Üretimdeki mevcut verileri kaybetmek istemiyorsanız, başlatıcıyı kapatabilirsiniz, aşağıdaki gibi:



Ayrıca yapılandırma dosyasında başlatıcıyı kapatabilirsiniz, örneğin:








Önceki:Resimli Kriptografi 3. Baskı
Önümüzdeki:Silikon Vadisi Nisan 2018 istihdam sınıfı videosu
 Ev sahibi| Yayınlandı 7.02.2021 15:08:59 |
Entity Framework'ün başlamasına izin ver artık geçerli __MigrationHistory tablo
https://www.itsvse.com/thread-3255-1-1.html

Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com