Le nombre de membres du type conceptuel ne correspond pas au nombre de membres du type d'objet

entity-framework

Question

J'utilise .net framework 3.5 SP1.

Après avoir ajouté une colonne à une table de Sql Server (et modifié une colonne existante de permettre aux valeurs NULL de ne pas être nullable), je ne peux plus exécuter mon projet sans obtenir cette erreur:

Le nombre de membres du type conceptuel 'XBRLDimensionalModel.axis_t' ne correspond pas au nombre de membres du type d'objet 'EOL.Xbrl.Persistence.Data.axis_t'. Assurez-vous que le nombre de membres est le même.

J'ai arrêté d'essayer de trouver et de corriger le code généré. J'ai maintenant supprimé tous mes fichiers associés à l'entité locale et les ai générés de nouveau en recommençant à zéro et en ajoutant un nouvel élément (modèle de données d'entité ADO.NET). J'ai toujours cette erreur.

Le seul moyen de lancer le projet maintenant consiste à annuler toutes mes modifications en attente et à utiliser la dernière version du contrôle de code source, et bien sûr de remplacer les deux colonnes de base de données modifiées par nullable.

D'après tout ce que j'ai lu jusqu'à présent, il semblerait que j'aurais simplement dû pouvoir "mettre à jour" mon modèle à partir de la base de données. Cela a abouti à cette exception (ci-dessus). Mais maintenant, je suis totalement confus que même avec une régénération complète du modèle d'entité et des classes de support, j'obtiens toujours cette erreur.

J'ai changé la propriété de mon modèle edmx: "Traitement des artefacts de métadonnées" par "Copier dans le répertoire de sortie". Les fichiers Designer.cs, csdl, msl, ssdl semblent tous correspondre aux dernières modifications apportées à la base de données.

L'exception est levée lors de la première référence à mon instance entityModel. C'est donc avant tout chargement ou sauvegarde des données de la table modifiée.

des idées où je vais mal? Merci TG

Réponse acceptée

Ouvrez votre modèle en tant que XML. Supprimez toutes les références à ce type du CSDL. Enregistrez et fermez, puis rouvrez dans l'interface graphique. Vous devriez maintenant pouvoir mettre à jour le modèle comme d'habitude. Si cela ne fonctionne pas, faites la même chose, mais supprimez également de MSL.


Réponse populaire

Cette erreur peut également se produire si le fichier EDMX a été modifié en dehors de Visual Studio. Faites un clic droit sur le fichier EDMX et cliquez sur "Exécuter l'outil personnalisé"



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow