Inisialisasi dijalankan ketika Anda perlu mengakses database, jadi jika Anda ingin membuat database di aplikasi, gunakan salah satu dari yang berikut:
context.Database.Initialize(true); //If set to true the initializer is run even if it has already been run.
context.Database.Create()
http://msdn.microsoft.com/en-us/library/system.data.entity.database.initialize(v=vs.103).aspx
BuatDatabaseIfNotExists Implementasi IDatabaseInitializer yang akan membuat ulang dan secara opsional menyemai ulang database dengan data hanya jika database tidak ada. Untuk menyemai database, buat kelas turunan dan ganti metode Seed.
Database.SetInitializer<MyContext>(new CreateDatabaseIfNotExists<MyContext>());
http://msdn.microsoft.com/ en-us/library/gg679221(v=vs.103).aspx
DropCreateDatabaseIfModelChanges Implementasi IDatabaseInitializeryang akan menghapus, membuat ulang, dan secara opsional menyemai ulang database dengan data hanya jika model telah berubah sejak database dibuat. Ini dicapai dengan menulis hash model toko ke database saat dibuat dan kemudian membandingkan hash itu dengan hash yang dihasilkan dari model saat ini. Untuk menyemai database, buat kelas turunan dan ganti metode Seed.
Database.SetInitializer(New DropCreateDatabaseIfModelChanges());
http://msdn.microsoft.com/ en-us/library/gg679604(v=vs.103).aspx
JatuhkanBuatDatabaseSelalu
Implementasi IDatabaseInitializer yang akan selalu membuat ulang dan secara opsional menyemai ulang database dengan data saat pertama kali konteks digunakan dalam domain aplikasi. Untuk menyemai database, buat kelas turunan dan ganti metode Seed.
Database.SetInitializer<MyContext>(new DropCreateDatabaseAlways<MyContext>());
http://msdn.microsoft.com/ en-us/library/gg679506(v=vs.103).aspx
Saya sarankan Anda melihat Migrasi jika Anda ingin melacak, kembalikan perubahan yang Anda buat pada DB Anda ke keadaan sebelumnya http ://msdn.microsoft.com/hr-hr/data/jj591621 .
PERBARUI
context.Database.Initialize(true);
Untuk aplikasi MVC tambahkan bagian ke Application_Start()
metode di Global.asax
protected void Application_Start() {
Database.SetInitializer<MyContext>(new DropCreateDatabaseAlways<MyContext>());
// Forces initialization of database on model changes.
using (var context= new MyContext()) {
context.Database.Initialize(force: true);
}
}
Anda juga dapat menggunakan penginisialisasi khusus :
public class MyDbInit : DropCreateDatabaseAlways<MyContext>
{
}
lalu gunakan
Database.SetInitializer(new MyDbInit());
PERBARUI 2
Buat aplikasi MVC4 kosong baru bernama DeleteDBOnEveryRequest .Letakkan yang berikut ini di Global.asax Application_start
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
Database.SetInitializer<BlogContext>(new DropCreateDatabaseAlways<BlogContext>());
using (var context = new BlogContext())
{
context.Database.Initialize(force: true);
}
}
Buat pengontrol baru bernama DatabaseController dengan dua tindakan.
Di Akses tindakan Anda menghapus DB dan mengarahkan ulang ke Dibuat ulang tindakan dari tempat Anda membuat DB seperti yang sebelumnya telah dihapus.
namespace DeleteDBOnEveryRequest.Controllers
{
public class DatabaseController : Controller
{
public ActionResult Access()
{
using (var context = new BlogContext())
{
context.Database.Delete();
}
return RedirectToAction("Recreated");
}
public ActionResult Recreated()
{
using (var context = new BlogContext())
{
context.Database.Initialize(force: true);
}
return View();
}
}
}
Apakah ini yang Anda inginkan?