Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Entity Framework Database.SetInitializer просто не работи

Базата данни ще бъде създадена само когато действително използвате контекста.

Ако сте заменили метода Seed във вашия инициализатор, както следва:

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

Началният код ще се изпълнява само когато използвате екземпляр на MyContext.

Ето защо работи, когато използвате

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

Винаги можете да го принудите да създаде, като използвате вашия контекст в метода Application_Start() в Global.asax.cs като:

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

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

Или ще бъде създаден по-късно, когато използвате вашия контекст. Може да изглежда, че е спряло да работи, защото сте премахнали някакъв код, който ще използва контекста при стартиране на приложението.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изпълнете съхранена процедура на SQL Server с входен параметър

  2. Възстановяване на паралелно архивиране на SQL Server -2

  3. SQL Server PIVOT може би?

  4. Как да напиша .Skip(1000).Take(100) на LINQ в чист SQL?

  5. T-SQL:Закръгля до най-близкия интервал от 15 минути