Maintenant, je vais dans mon programme et il n'a pas réellement mis à jour ... Je ne peux pas mettre un null dans la colonne. Que dois-je faire pour mettre à jour correctement edmx? Je vous remercie.
Choisir le modèle de mise à jour à partir de la base de données est la meilleure méthode pour mettre à jour votre EDMX. Certaines propriétés ne sont pas mises à jour sur la couche conceptuelle.
Assurez-vous que votre couche Store a été mise à jour en la visualisant dans la boîte à outils Model Viewer. Si le magasin a été correctement mis à jour, tout va bien et votre base de données est synchronisée. Si tel est le cas, accédez au concepteur visuel, cliquez sur le champ, sélectionnez Propriétés et mettez à jour la propriété NotNull du côté Conceptuel.
Mettre à jour/supprimer de l'EDMX n'est pas toujours fonctionnel. Si le modèle n'est pas mis à jour en cliquant sur Mettre à jour le modèle à partir de la base de données, disons que lorsque vous avez mis à jour une vue/table dans la base de données, procédez comme suit:
1) Supprimer la vue/la table du modèle de diagramme
2) Basculez la vue EDMX en vue XML (cliquez avec le bouton droit sur le fichier edmx et sélectionnez "Ouvrir avec")
3) Rechercher et supprimer les éléments d'entité XML
4) Revenir à la vue EDMX
5) Cliquez sur Update Model from Database
Cela devrait refléter tout type de changement que vous avez apporté à la base de données sur votre EDMX. C'est encombrant, mais fonctionne parfaitement.
Dans un monde idéal, je m'attendrais à ce que le modèle de mise à jour à partir de la base de données synchronise les modifications apportées de la base de données à EDMX. Mais ça ne marche pas la plupart du temps.
Voici ce que j’ai réussi à faire (VB.Net).
Oui, ça ne marche pas la plupart du temps: - /
La "meilleure méthode" (car cela fonctionne systématiquement) consiste à supprimer le fichier EDMX et à le générer à nouveau . Mais n'oubliez pas de supprimer la chaîne de connexion dans App.config (sinon, le testeur VS2008 ajoutera un suffixe à la valeur par défaut). nom de l’entité) et vider le cache.
J'espère que ces outils fonctionneront mieux dans une prochaine version, car ils réduisent considérablement la productivité ...
CELA IS EST LE PLUS RAPIDE:
1.Construisez le projet après la mise à jour du fichier EDMX.
2. Cliquez avec le bouton droit sur votre fichier .tt dans l'explorateur de solutions.
3. Sélectionnez l'option "Exécuter l'outil personnalisé".
Cela mettra à jour le fichier .tt.
Source: ici !
Cette réponse est meilleure: https://stackoverflow.com/a/23886016/1014884
Toute édition manuelle est prête à commettre des erreurs ou sera perdue si quelqu'un utilisait un outil tel que l'assistant. La suppression et la mise à jour avec l'assistant sont bien meilleures.
Ouvrez le fichier edmx dans l'éditeur XML du VS et vérifiez si des erreurs ont été signalées lors de la tentative de mise à jour.
<!--Errors Found During Generation:
warning 6013: The table/view 'foo.dbo.snafu' does not have a primary key
defined and no valid primary key could be inferred. This table/view has
been excluded. To use the entity you will need to review your schema,
add the correct keys and uncomment it.
<EntityType Name="snafu">
<Property Name="snafu_column" Type="smallint" />
</EntityType>-->
Dans le cas ci-dessus ... L'ajout d'une clé primaire à la table en question a entraîné le "Modèle de mise à jour à partir de la base de données".
Il ne met pas à jour par exemple la longueur maximale pour les attributs de chaîne!
Si vous travaillez avec TFS, il n'est pas bon de supprimer le fichier, vous voulez conserver l'historique et ne pas affecter les autres.
Pour moi, cela fonctionne avec un projet séparé que je peux utiliser pour recréer complètement le fichier edmx, je l'ouvre au format XML, je le colle dans l'existant et je déplace une forme dans le modèle afin que VS puisse recréer le fichier .cs . Voilà, il est maintenant mis à jour.
Une vue que j'ai créée dans la base de données n'apparaissait pas dans le concepteur (après avoir choisi "Mettre à jour le modèle à partir de la base de données ..." et ajouté une coche en regard du nom de la vue). Je n'ai vu aucun message d'erreur jusqu'à ce que je passe d'EDMX en vue XML:
Dans edmx XML, j'ai trouvé:
"Erreurs détectées lors de la génération: avertissement 6013: La table/vue '(vue Nom)' n'a pas de clé primaire définie et aucune clé primaire valide Ne peut être déduite. Cette table/vue a été exclue. Pour Pour utiliser l’entité , vous devrez revoir votre schéma, ajouter les clés appropriées et le décommenter. "
J'ai modifié la vue pour avoir une clé primaire. Ensuite, j'ai ouvert le concepteur edmx et exécuté "Mettre à jour le modèle à partir de la base de données ..." et la vue est ensuite apparue dans le concepteur comme prévu, sans erreur.
Supprimer toutes les tables de la vue designer et mettre à jour après cela fonctionne pour moi