0

私は現在、クエリ用にMySQLバックエンドデータベースを使用するWeb APIプロジェクトを開発中です。 dbアクセスは、EF v6.1.3を使用して実行されます。私が達成しようとしています何Force Entity Frameworkコードアプリケーションの実行中に削除されるDbを最初に再作成する

は、DBクエリの次のリクエストが来たときに、データベースは最新の移行に再作成し、任意のシーディングデータが挿入されていることを、私のバックエンドデータベースは、アプリケーションの実行中に削除された場合ということです。

現時点では、アプリケーションの実行中にデータベースを削除すると、次の要求にはオープンdb接続エラーが発生します。

注:データベースがToadまたはMySQL Workbench内で削除されています。

その後、アプリケーションプールをリサイクルしてから、要求を再試行すると、バックエンドデータベースが自動的に作成されます。

この分野のお手伝いをさせていただきます。

よろしく、

スチュアート

答えて

0

削除する前に/あなたはすべての接続をクローズする必要があるデータベースをドロップ:

は、次のコマンドを使用し、それをドロップします。

DbContext.Database.ExecuteSqlCommand(@" 
    $result = mysql_query('SHOW FULL PROCESSLIST'); 
     while ($row = mysql_fetch_array($result)) 
     { 
     $process_id =$row['Id']; 
     if ($row['Time'] > 200) 
     { 
      $sql = 'KILL $process_id'; 
      mysql_query($sql); 
     } 
     }") 
+0

わかりません上記の答えに違いがあるが、C#の中からデータベースを削除していない場合は、上記の質問を上記のように更新しました –

+0

あなたは削除しますデータを教えてください。あなたは接続を閉じる必要がありますか? –

+0

いいえ、私はデータベース全体をドロップする、私はこの場合の問題はEFコンテキストがまだデータベースが存在すると考えていると思う。 –

関連する問題