ホームページ  >  記事  >  データベース  >  私のビューでは MySQL で単数の名前が予期されているのに、Entity Framework では複数のテーブル名が作成されるのはなぜですか?

私のビューでは MySQL で単数の名前が予期されているのに、Entity Framework では複数のテーブル名が作成されるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-28 20:38:02759ブラウズ

Why Does Entity Framework Create Plural Table Names While My View Expects Singular Names in MySQL?

Entity Framework は複数のテーブル名を作成しますが、ビューでは単数のテーブル名が必要です

MySQL .NET Connector 6.4.4.0 と Entity Framework 4.1 を使用すると、開発者は次の問題に遭遇する可能性があります。 Entity Framework は複数名でテーブルを作成しますが、オブジェクトのビューでは単数のテーブル名が必要です。これにより、ビューを表示しようとするとエラーが発生する可能性があります。

エラーの詳細

エラーは通常、次の例外で発生します。

Table 'mydb.vote' doesn't exist

この例外は、 Entity Framework が "votes" という名前のテーブルを作成したときに、ビューは "vote" という名前のテーブルにアクセスしようとします (エンティティ クラスの名前が "Vote" であると仮定します)。

原因

原因このエラーは、テーブル名を複数形にするための Entity Framework の規則に関連しています。デフォルトでは、Entity Framework はテーブル名を生成するときにエンティティ クラスの名前を複数形にします。ただし、MySQL .NET Connector の Entity Framework のサポートなど、特定の外部要因がこの動作に影響を与える可能性があります。

解決策

この問題を解決するには、次のいくつかの手順を実行できます。

  1. 'DropDatabaseIfExists' または 'DropCreateDatabaseAlways' が使用されていることを確認してください: ApplicationStart メソッドはデータベース初期化子を正しく設定する必要があります。
  2. データベース: これは、PluralizingTableNameConvention を削除するか、OnModelCreating で ToTable("Votes") を呼び出すことで実現できます。
  3. アプリケーションを実行する前にデータベースが存在することを確認してください: MySQL .NETコネクターはデータベースを自動的に作成しない場合があるため、データベースを手動で作成する必要がある場合があります。

これらの手順に従うことで、Entity Framework によって作成された複数のテーブル名と、Entity Framework によって予期される単数形のテーブル名との間の不一致が解消されます。ビューは解決できます。

以上が私のビューでは MySQL で単数の名前が予期されているのに、Entity Framework では複数のテーブル名が作成されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。