Anda membuat penginisialisasi basis data khusus dan menimpa Seed
metode
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
}
}
Kemudian Anda mendaftarkan penginisialisasi ini untuk konteks turunan Anda MyContext
:
Database.SetInitializer<MyContext>(new MyContextInitializer());
Ini adalah metode statis Database
class dan harus dipanggil di suatu tempat sekali saat startup aplikasi. Anda juga dapat memasukkannya ke dalam konstruktor statis konteks Anda untuk memastikan bahwa penginisialisasi disetel sebelum Anda membuat instance konteks pertama:
static MyContext()
{
Database.SetInitializer<MyContext>(new MyContextInitializer());
}
Alih-alih penginisialisasi dasar DropCreateDatabaseIfModelChanges<T>
anda juga dapat mengambil dari DropCreateDatabaseAlways<T>
atau CreateDatabaseIfNotExists<T>
jika itu lebih memenuhi kebutuhan Anda.