2017-08-17 11 views
1

統合アイデンティティを使用して新しいASP.NET MVCプロジェクトを作成すると、最初に実行すると、アプリケーションは接続文字列で指定されたデータベースに必要なテーブルを作成します。ASP.NET MVC統合アイデンティティープロジェクトは、テーブルを1回のみ作成します。

ただし、これは1回だけ発生し、1回だけ発生します。すべてのAspNetXXXテーブルとテーブル_MigrationHistoryを削除すると、これらのテーブルはもう再作成されません。アプリが起動すると、テーブルが欠落しているという例外がスローされます。テンプレートから新しいアプリケーションを作成し、その接続文字列を既存の同じデータベースに設定すると、新しいアプリケーションがテーブルを再作成し、最初のものが正常に動作を再開しました。

私の質問は以下のとおりです。

  1. どのようにこのプロジェクト/ EFは一度だけASP.NETのIDテーブルを作成するために、どこで、それはこのアプリは、すでにそのテーブルを作成したという情報を格納しない知っているのですか?

  2. これを既存のプロジェクトに「リセット」して、EFコードファーストマイグレーションを有効にせずにテーブルを再作成する方法はありますか?

答えて

0

DropCreateDatabaseIfModelChangesデータベース初期化ツールを使用してください。

このチュートリアルには、https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application(このページの「DropCreateDatabaseIfModelChanges」を検索)が含まれています。

ただし、実際の開発中にのみ使用することをお勧めします。モデルとデータベースの間に相違がある場合、データベース全体が削除されて再度作成されるためです。

このテーブルにデータが入力されていることを確認するには、Seed()メソッドを使用します(このチュートリアルも参照)。

+0

これは、新しく作成されたMVCアプリケーションがいつdbテーブルを作成するのか、そしてそれをもはや作成しない方法を知っているという質問には答えません。 – Nick

+0

確かに、申し訳ありませんが、それが助けて欲しいと思っています)) –

関連する問題