アプリを構築する際に複数のアプローチをテストしたかった (DB ファースト、モデル ファースト、コード ファースト)。T4Scaffolding を使用し、変更後の DB に多くの問題が発生した後、私は EF が十分に柔軟ではないと考えました。今、私は非常に奇妙なものを見つけました。Web.Config で指定された単一の 'DefaultConnection' を残して、ソリューションの App_Data フォルダー内の単一の .mdf ファイルを指しています。Code-First アプローチを使用して、エンティティ (クラス) を作成し、次にスキャフォールディング リポジトリ、コンテキストを作成しました。DB を「削除」して更新する前に保存されたデータを取得することを除いて、すべてがほぼ正常に機能しているようです。しかし、VS サーバー エクスプローラーでチェックした後、データベースには ID (ユーザー、ロール) に使用されるテーブルのみが含まれており、実際のデータベースは別の場所にあることがわかります。'C: にあると思われます。\Users{MyUser}\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances'. しかし、既に使用されているため、そこから .mdf ファイルを開いて確認することはできません。ハマった。私のデータはどこにありますか???
アプリケーションに 2 つのコンテキストがあることを忘れていたため、PM コンソールに次のような警告が表示されます。「アセンブリで複数のコンテキスト タイプが見つかりました...」
ただし、最初は「ApplicationDbContext」であり、Identity DB のみを参照します。
public class ApplicationUser : IdentityUser
{
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection")
{
}
}
2 番目のコンテキストは、Web.Config からの単一の DB 接続にバインドされ、ビジネス ロジック エンティティを持ちます。