sql >> データベース >  >> RDS >> Sqlserver

Entity Framework Database.SetInitializer が機能しない

    データベースは、実際にコンテキストを使用するときにのみ作成されます。

    次のように、イニシャライザで Seed メソッドをオーバーライドした場合:

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

    シード コードは、MyContext のインスタンスを使用する場合にのみ実行されます。

    そのため、使用すると機能します

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

    次のように、Global.asax.cs の Application_Start() メソッドでコンテキストを使用して、いつでも強制的に作成できます。

            System.Data.Entity.Database.SetInitializer(new MyInitializer());
    
            MyContext db = new MyContext();
            db.Database.Initialize(true);
            //or even something like db.Users.Count();
      

    または、後でコンテキストを使用するときに作成されます。アプリケーションの起動時にコンテキストを使用するコードを削除したため、動作を停止したように見えた可能性があります。



    1. Hibernateを使用して階層結果を取得するためのデータベースクエリの再帰-Java

    2. MySQL ORDER BY x-y / x ASC

    3. CodeigniterとMySQLの2つの日付を比較します

    4. SELECT句に集計関数が存在しない場合のGROUPBYの動作