आप कस्टम प्रारंभकर्ता बनाते हैं, जो DropCreateDatabaseIfModelChanges
या DropCreateDatabaseAlways
इंटरफ़ेस से प्राप्त होता है। जैसा:
public class EntitiesContextInitializer : DropCreateDatabaseIfModelChanges<-YourDbContext->
और फिर आप बीज विधि के ऊपर लिख तरह:
public class EntitiesContextInitializer : DropCreateDatabaseIfModelChanges<EntitiesContext>
{
protected override void Seed(EntitiesContext context)
{
List<Role> roles = new List<Role>
{
new Role {Id=1, Title="Admin"},
new Role {Id=2, Title="ProjectManager"},
new Role {Id=3, Title="Developer"}
};
// add data into context and save to db
foreach (Role r in roles)
{
context.Roles.Add(r);
}
context.SaveChanges();
}
}
संपादित करें::
protected override void Seed(YourDbContext context)
पूरे उदाहरण की तरह लग सकता है इसे सेट अप करने के बाद, आप प्रारंभकर्ता स्थापित करने के लिए है भी, जैसा कि Ladislav Mrnka का उल्लेख किया।
Database.SetInitializer(new EntitiesContextInitializer());
यानी .: Global.asax में:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
Database.SetInitializer(new EntitiesContextInitializer());
}
using System.Data.Entity;
जोड़ने के लिए मत भूलना .....
यह केवल भूमिकाओं की सूची बनाएगा। आपको उन्हें संदर्भ में जोड़ना होगा और परिवर्तनों को सहेजना होगा। –
सच है, इसे इंगित करने के लिए धन्यवाद। – Damb
@Dampe क्या मैं webUI प्रोजेक्ट में डेटाबेस.SetInitializer का उपयोग कर सकता हूं या क्या यह डीबीकॉन्टेक्स्ट बनाने के लिए है? –