2012-05-23 19 views

cevap

21

kullanın bu veritabanı başlatma ve göçler kapatmak için:

Database.SetInitializer<YourContextType>(null); 
+0

Bu kodu İnşaat bölümüne ekliyorum ama bana yardım et – Greg

+0

Yapımcı çok geç Greg. Cevabı tekrar oku. Uygulama başlangıç ​​global.asax'ınızda – Stimul8d

+0

Global olarak devre dışı bırakmanın bir yolu var mı, yoksa bunu her dbContext için mi yapmalıyım? – JMarsch

7

tamamen bağımsız hangi ekleyebilir sizin Bağlamını kullandığınız projenin veritabanı başlatma/göç kapatmak istiyorsanız Başlatıcıyı çağırmak için içeriğinize statik bir kurucu. Bu, SetInitializer öğesinin içeriğinizin ilk yapımı/kullanımından önce bir kez çağrılmasını sağlar. Eğer sadece belli başlı projelerde bu yapmak istiyorsanız

public class YourContext : DbContext 
{ 
    static YourContext() 
    { 
     // don't let EF modify the database schema... 
     Database.SetInitializer<YourContext >(null); 
    } 

    public YourContext() : base("name=YourContext") 
    {} 
    ... 
} 

Ancak, açıkça uygulamanın başlangıcında aracılığıyla yapıyor daha iyiyiz - örneğin Ladislav tarafından önerildiği gibi normal IoC kurulumunuz sırasında.

İlgili konular