モデルが複数である場合でも、Entity Framework が MySQL に単数のテーブルを作成するのはなぜですか?

DDD
リリース: 2024-10-31 08:03:30
オリジナル
295 人が閲覧しました

Why Does Entity Framework Create Singular Tables in MySQL Even When My Model is Plural?

Entity Framework での複数のテーブル名の競合

この問題は、MySQL で Entity Framework を使用し、複数名のテーブルを作成しようとすると発生します。

問題:

提供されたコードでは、ビューでは "votes" という名前のテーブルが予期されていますが、Entity Framework は "" という名前のテーブルを作成します。 MySQL で「投票」。この不一致により、「テーブル 'mydb.vote' が存在しません」という例外が発生します。

解決策:

この問題を解決するには、次の手順を実行できます。 take:

  1. OnModelCreating の基本コンストラクター呼び出しを削除します:
    もともと、基本コンストラクター呼び出しは、複数化を実装するために OnModelCreating で使用されていました。ただし、複数化動作を防ぐために、この呼び出しを削除することをお勧めします。
  2. PluralizingTableNameConvention を削除します:
    コードには、最初に PluralizingTableNameConvention を削除する行が含まれていました。これは、テーブル名の自動複数形化を防ぐために依然として必要です。
  3. 既存のデータベースを削除します:
    既存のデータベースを削除してから、Entity Framework が新しいデータベースを作成できるようにすることをお勧めします。 1つ。これにより、正しいテーブル名が使用されるようになります。
  4. データベース作成権限を確認します:
    接続文字列で指定された MySQL ユーザーに、新しいデータベースを作成するための十分な権限があることを確認します。
  5. ApplicationStart から複数形を削除します:
    コードは元々 DropCreateDatabaseAlways を使用していましたが、これにより複数形が無効になりました。ただし、これは誤って Database.SetInitializer(new DropCreateDatabaseAlways()) として実装されました。代わりに、Database.SetInitializer(new myDBInitializer()) にする必要があります。

これらの変更を実装した後、Entity Framework は MySQL に "votes" テーブルを正しく作成し、テーブル名の競合を解決し、ビューが適切に機能するようにします。

以上がモデルが複数である場合でも、Entity Framework が MySQL に単数のテーブルを作成するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!