Maison > base de données > tutoriel mysql > Pourquoi Entity Framework crée-t-il plusieurs noms de table alors que ma vue attend des noms singuliers dans MySQL ?

Pourquoi Entity Framework crée-t-il plusieurs noms de table alors que ma vue attend des noms singuliers dans MySQL ?

Patricia Arquette
Libérer: 2024-10-28 20:38:02
original
794 Les gens l'ont consulté

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

Entity Framework crée un nom de table pluriel, mais View attend un nom de table singulier

En utilisant MySQL .NET Connector 6.4.4.0 et Entity Framework 4.1, les développeurs peuvent rencontrer un problème où Entity Framework crée une table avec un nom au pluriel, mais la vue de l'objet attend un nom de table au singulier. Cela peut entraîner des erreurs lors de la tentative d'affichage de la vue.

Détails de l'erreur

L'erreur se produit généralement avec l'exception suivante :

Table 'mydb.vote' doesn't exist
Copier après la connexion

Cette exception est levée lorsque le view tente d'accéder à une table nommée « vote » lorsque Entity Framework a créé la table avec le nom « votes » (en supposant que la classe d'entité est nommée « Vote »).

Cause

La cause Cette erreur est liée à la convention Entity Framework pour la pluralisation des noms de table. Par défaut, Entity Framework mettra au pluriel le nom de la classe d'entité lors de la génération du nom de la table. Cependant, certains facteurs externes, tels que la prise en charge par MySQL .NET Connector d'Entity Framework, peuvent affecter ce comportement.

Solution

Pour résoudre ce problème, plusieurs étapes peuvent être prises :

  1. Assurez-vous que 'DropDatabaseIfExists' ou 'DropCreateDatabaseAlways' est utilisé : La méthode ApplicationStart doit définir correctement l'initialiseur de base de données.
  2. Supprimez l'écart singulier/pluriel du base de données : Cela peut être réalisé en supprimant la PluralizingTableNameConvention ou en appelant ToTable("Votes") dans OnModelCreating.
  3. Assurez-vous que la base de données existe avant d'exécuter l'application : MySQL .NET Le connecteur peut ne pas créer la base de données automatiquement, donc la création manuelle de la base de données peut être nécessaire.

En suivant ces étapes, l'écart entre le nom de table au pluriel créé par Entity Framework et le nom de table au singulier attendu par le la vue peut être résolue.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal