Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Entity Framework Database.SetInitializer tidak berfungsi

Basis data hanya akan dibuat ketika Anda benar-benar menggunakan konteksnya.

Jika Anda telah mengganti metode Seed di penginisialisasi Anda sebagai berikut:

protected override void Seed(MyContext context){...}

Kode Seed hanya akan berjalan saat Anda menggunakan instance MyContext.

Itulah mengapa ini berfungsi saat Anda menggunakan

var ctx = new MyContext();
ctx.Database.Initialize(true);

Anda selalu dapat memaksanya untuk membuat dengan menggunakan konteks Anda dalam metode Application_Start() di Global.asax.cs seperti:

        System.Data.Entity.Database.SetInitializer(new MyInitializer());

        MyContext db = new MyContext();
        db.Database.Initialize(true);
        //or even something like db.Users.Count();

Atau itu akan dibuat nanti ketika Anda menggunakan konteks Anda. Mungkin terlihat seperti berhenti bekerja karena Anda menghapus beberapa kode yang akan menggunakan konteks pada startup aplikasi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Windows Azure SQL Database - kolom peningkatan Identitas Otomatis melewatkan nilai

  2. Mengembalikan nilai dan hasil yang ditetapkan dari prosedur tersimpan asp klasik

  3. SQL Server - Cara terbaik untuk mendapatkan identitas baris yang disisipkan?

  4. Prosedur tersimpan SQL Server mengembalikan keanehan kode

  5. Len() vs panjang data() di SQL Server 2005