web-dev-qa-db-fra.com

Comment puis-je obtenir Entity Framework pour mettre à jour des types complexes?

J'utilise Entity Framework (EF) pour créer un type complexe à partir d'une procédure stockée. Récemment, la procédure stockée a changé (plusieurs valeurs de retour ont été ajoutées. J'aimerais mettre à jour le type complexe mappé sur cette procédure stockée. Est-ce possible et si oui, comment? Je suis en train de supprimer mon importation de fonction et mon type complexe chaque procédures stockées changements, ce qui est probablement pas la meilleure approche.

41
Halcyon

J'ai trouvé un autre moyen de le faire sans supprimer le type complexe. Vous pouvez mettre à jour votre type de complexe et Visual Studio ajoutera toutes les colonnes modifiées. Voici comment:

  1. Ouvrez votre fichier .edmx et accédez au navigateur de modèle.
  2. Si votre procédure stockée a changé, cliquez avec le bouton droit de la souris sur une zone blanche dans le navigateur de modèle et sélectionnez Mettre à jour le modèle à partir de la base de données, puis cliquez sur "Terminer". Cela actualisera votre procédure stockée.
  3. Parcourez maintenant XModel.edmx> XModel> EntityContainer: XEntities> Importations de fonctions (X est le nom de votre entité) et cliquez avec le bouton droit de la souris sur celui que vous devez mettre à jour. Sélectionnez Modifier.
  4. Cliquez sur "Obtenir des informations sur la colonne". Maintenant, à côté du bouton radio Type de complexe, il y a un bouton Mettre à jour. Appuyez sur cette touche pour mettre à jour votre type de complexe, puis appuyez sur le bouton OK.

Ça devrait le faire!

110
Halcyon

Il y a un moyen plus facile d'y parvenir, regardez ici à SO. Il ajoute des métadonnées à la procédure stockée, que l'EF utilise pour générer le type de retour approprié pour vous. 

La partie méta-information de la procédure stockée n'est pas exécutée, elle indique simplement les colonnes et les types de données qu'elle renvoie.

0
Matt