PDA

View Full Version : سوال: ایجاد داده در جداول پایه در codefirst



Iran58
یک شنبه 01 بهمن 1396, 18:03 عصر
سلام
فرض کنید یک برنامه را با Codefirst طراحی کرده ایم که دارای تعدادی جداول پایه مانند جدول جنیسیت و وضیعت و...می باشد
حال چگونه می توان برای بار اول که این برنامه اجرا میشود داده های این جداول را چر کنم و در اجرا های دیگر این داده ثبت نشوند
باتشکر

ali_md110
یک شنبه 01 بهمن 1396, 21:13 عصر
سلام
وقتی Migration رو در برنامتون فعال کردید در کلاس Configurationدر متد Seed داده های دلخواهتون اضافه کنید



public class SchoolDBInitializer : DropCreateDatabaseAlways<SchoolDBContext>
{
protected override void Seed(SchoolDBContext context)
{
IList<Standard> defaultStandards = new List<Standard>();

defaultStandards.Add(new Standard() { StandardName = "Standard 1", Description = "First Standard" });
defaultStandards.Add(new Standard() { StandardName = "Standard 2", Description = "Second Standard" });
defaultStandards.Add(new Standard() { StandardName = "Standard 3", Description = "Third Standard" });

foreach (Standard std in defaultStandards)
context.Standards.Add(std);

base.Seed(context);
}
}

سپس در سازنده کلاس دیتاکانتکست این کلاس کانفیک رو وهله سازی کنید


public class SchoolContext: DbContext
{

public SchoolContext(): base("SchoolDBConnectionString")
{
Database.SetInitializer(new SchoolDBInitializer());

}
}