Après la mise à jour du modèle de Framework Entity, Visual Studio ne voit pas de changements

si je fais des changements à mon modèle EF 5.0, VS ne semble pas voir les changements. J'ai essayé d'ajouter une nouvelle table, qui s'affiche bien dans le modèle, mais si j'essaie de l'utiliser quelque part, le tableau ne s'affiche pas dans intellisense et je ne peux pas l'utiliser.

j'ai également essayé de changer les types de données d'une colonne, qui apparaît encore une fois très bien si je regarde le .edmx fichier de modèle, mais visual studio me donnera encore des erreurs de compilateur sur ce champ parce que je suis en train d'essayer d'attribuer le incorrect type de données.

si je supprime complètement L'EDMX, et que je le recrée, alors les changements fonctionnent bien. mais il est fatigant de se régénérer à partir de la base de données chaque fois que je devrais être en mesure de simplement "mettre à jour le modèle à partir de la base de données" et de reconstruire.

je n'ai jamais eu ces problèmes avec EF avant. Quelqu'un connaît-il la cause ou la solution de ce problème?

Merci.

43
demandé sur marc_s 2012-11-19 23:39:02

9 réponses

si c'est le bug avec le fichier edmx situé dans un dossier, il est maintenant corrigé - télécharger et installer VS mise à jour 2012 1. Vous pouvez l'obtenir auprès de: http://www.microsoft.com/visualstudio/eng/downloads#d-visual-studio-2012-update

15
répondu Pawel 2012-11-28 07:22:00

construisez D'abord votre projet et s'il a réussi, indiquez le " model.tt dans le contexte. puis exécuter l'outil personnalisé. Il va le corriger.

construisez à nouveau votre projet et pointez vers " model.contexte.tt Exécuter l'outil personnalisé. elle sera mise à jour DbSet listes.

55
répondu Mahdi Shahbazi 2013-10-02 05:53:36

il s'agit apparemment d'un bug dans le Framework Entity que le model ne peut pas mettre à jour lorsque votre fichier Edmx est localisé dans un dossier. Les solutions de rechange actuellement disponibles sont les suivantes:

  1. Installer visual studio 2012 Update 1 qui devrait corriger le bug.
  2. si vous n'êtes pas en mesure d'installer la mise à jour 1, vous devrez cliquer avec le bouton droit de la souris sur le modèle.TT fichier de modèle T4 et cliquez sur Exécuter l'outil personnalisé. Ceci mettra à jour les classes pour vous.

L'espoir que cela aide quelqu'un là-bas.

lien: http://thedatafarm.com/blog/data-access/watch-out-for-vs2012-edmx-code-generation-special-case/

14
répondu Ghlouw 2012-12-03 13:34:50

j'ai aussi eu ce problème, cependant, droit-cliquant sur le modèle.le fichier tt et l'exécution "Custom tool" n'ont fait aucune différence pour moi d'une manière ou d'une autre, mais un commentaire sur la page Ghlouw lié à mentionné pour utiliser le menu "construire > transformer tous les modèles T4."qui l'a fait pour moi

9
répondu Kristian 2015-03-27 12:23:00

vous devriez avoir un <XXX>Model.tt produisez quelque part qui est le modèle T4 qui génère vos classes de modèles.

S'il s'agit d'un projet différent, il ne sera pas mis à jour lorsque vous sauvegarderez le fichier edmx.

de toute façon, essayez de cliquer avec le bouton droit de la souris dans Solution Explorer et choisissez Run Custom Tool

7
répondu Nicholas Butler 2012-11-19 19:51:38

j'ai cherché cette réponse parce que j'avais une situation similaire dans VS2013. Dans mon cas, j'ai trouvé qu'un simple "Clean Solution" effacé toutes les anciennes définitions.

3
répondu woodvi 2015-05-19 17:09:45

clic Droit .tt fichier et sélectionnez "Exécuter L'outil personnalisé", qui devrait le mettre à jour: see image

3
répondu Tshilidzi Mudau 2017-01-13 10:15:29

travaillez-vous dans un projet à plusieurs niveaux? Si c'est le cas, essayez de reconstruire votre couche de données (ou l'endroit où votre fichier EDMX est stocké) avant de l'utiliser.

0
répondu Middas 2012-11-19 19:42:16

j'ai aussi connu ce problème avec aucune des classes générées par le modèle.TT file. Dans mon cas, il s'agissait de problèmes avec la façon dont j'avais construit le DB dans SQL2012. J'avais mis une colonne dans un tableau pour annuler qui était aussi une clé étrangère et même si je pense que vous devriez être capable de le faire, ça a causé un problème dans EF5.

dès que cela a été effacé et que le diagramme a été mis à jour à partir de la base de données, ils sont réapparus.

EF5 VS2013

0
répondu CF5 2015-10-01 14:11:41