आप एक कस्टम डेटाबेस प्रारंभकर्ता बनाते हैं और Seed
. को अधिलेखित करते हैं विधि
public class MyContextInitializer
: DropCreateDatabaseIfModelChanges<MyContext>
{
protected override void Seed(MyContext context)
{
context.ContactTypes.Add(new ContactType { DisplayName = "Home" });
context.ContactTypes.Add(new ContactType { DisplayName = "Mobile" });
context.ContactTypes.Add(new ContactType { DisplayName = "Office" });
context.ContactTypes.Add(new ContactType { DisplayName = "Fax" });
//EF will call SaveChanges itself
}
}
फिर आप इस प्रारंभकर्ता को अपने व्युत्पन्न संदर्भ के लिए पंजीकृत करें MyContext
:
Database.SetInitializer<MyContext>(new MyContextInitializer());
यह Database
. की एक स्थिर विधि है क्लास और एप्लिकेशन स्टार्टअप पर कहीं एक बार बुलाया जाना चाहिए। आप यह सुनिश्चित करने के लिए अपने संदर्भ के एक स्थिर निर्माता में भी डाल सकते हैं कि आपके द्वारा पहला संदर्भ उदाहरण बनाने से पहले इंटिलाइज़र सेट किया गया है:
static MyContext()
{
Database.SetInitializer<MyContext>(new MyContextInitializer());
}
आधार प्रारंभकर्ता के बजाय DropCreateDatabaseIfModelChanges<T>
आप DropCreateDatabaseAlways<T>
. से भी प्राप्त कर सकते हैं या CreateDatabaseIfNotExists<T>
अगर वह आपकी ज़रूरतों को बेहतर ढंग से पूरा करता है।