Entity Framework は複数のテーブルを作成しますが、ビューは単数のテーブルを期待します
提供されたコードでは、Entity Framework はビューが複数のテーブルを作成します。単一のテーブルが必要です。この不一致は、Entity Framework によって作成されたテーブルとビューによって参照されるテーブルの名前が異なるために発生します。
Entity Framework によって作成されたテーブルは、エンティティの名前を複数形にする規則に従います。したがって、この場合は、「Votes」という名前のテーブルが生成されます。ただし、このビューでは「Vote」という名前のテーブルが必要です。この主な理由は、MySQL .net コネクタによる EF のサポートです。複数形化を削除し、その他の調整を行うと、問題が解決されるはずです。
まず、「ApplicationStart」メソッドには軽微なエラーが含まれています。
// Database.SetInitializer(new DropCreateDatabaseAlways<myDB>()); Database.SetInitializer(new myDBInitializer());
さらに、「OnModelCreating」の基本実装を無効にすると、 required:
protected override void OnModelCreating(DbModelBuilder modelBuilder) { // modelBuilder.Entity<Vote>().ToTable("Votes") modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); }
また、MySQL .net コネクタが EF によるデータベースの生成を妨げ、事前に空の DB を作成する必要があるとも示唆されています。この制限は、現在のシナリオのコネクタ バージョン 6.4.4 には適用されません。ユーザーが必要な権限を持っている場合は、データベースを作成することをお勧めします。
これらの調整により、Entity Framework によって作成された複数のテーブル名とビューによって予期される単数のテーブル名との間の不一致が解決されます。
以上が私のビューでは単数のテーブルが必要であるのに、Entity Framework は複数のテーブルを作成するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。