2011-08-15 4 views
2

J'ai un projet EF4.1 existant qui fonctionne très bien. J'ai ajouté un nouveau SP au DB qui renvoie un nouveau type d'entité (une entité existante avec des champs supplémentaires).Entity Framework et procédures stockées avec des entités personnalisées

Le problème est lorsque j'essaie d'importer la fonction à l'EF - il ne créera pas mon type complexe. l'assistant écrit que "aucune connexion à la base de données n'a été configurée pour ce modèle". Ce qui est étrange - parce qu'il voit le nouveau SP et tout.

J'ai essayé de créer mon propre, nouveau type complexe, mais il ne sera pas cartographier les champs selon vos besoins (certains problèmes de conversion de type)

Toutes les idées ce qui pourrait être fait?

Merci!

+0

Etes-vous sûr que votre SP renvoie toujours le même résultat? – a1ex07

+0

Bien sûr! C'est une simple requête SELECT – Roman

Répondre

4

Pour compléter la réponse de Malako, j'ai une situation similaire. Mon problème était que mes chaînes de connexion sont dans un fichier externe

<connectionStrings configSource="some_other_file.config"> 

L'assistant « Modèles de mise à jour » a un bug où il ne sera pas dans le fichier externe pour les chaînes de connexion, et je ne peux pas laisser une chaîne de connexion dans la La balise connectionStrings car elle doit être vide ou elle donnera une erreur lors de la construction. La solution de contournement pour moi est d'utiliser l'Assistant Mise à jour, cochez la case "Enregistrer la chaîne de connexion d'entité dans Web.config", puis ajoutez toutes mes importations de fonction. Quand j'ai fini, je commente le connectionString pour que mon projet se construise. La prochaine fois, décommentez cette chaîne de connexion d'entité avant de mettre à jour les modèles.

Agaçant, mais au moins il y a un moyen de le faire fonctionner.

+0

Oui c'est comme ça que je le fais mais que se passe-t-il la prochaine fois que vous ajoutez une nouvelle procédure de magasin, alors vous devez rajouter la chaîne de connexion sinon il n'y aura pas de carte quand vous essayez d'obtenir les colonnes un message sur l'importation "Edit Function" vous verrez un message disant "Aucune connexion à la base de données n'a été configurée pour ce modèle". donc mon travail est de réinstaller la procédure estore, mais que se passe-t-il quand j'ai 20 ou plus alors chaque fois que je vais devoir refaire tous les processus de magasin .. ou créer un nouveau modèle ?? @Rocketmonkeys – Xvegas

+0

Voici le lien de ma solution il y a une vidéo et tout sauf Im essayant de comprendre Comment faire avec suppression de la maquette ou ajout de la chaîne de connexion [VIDEO LINK] (http://youtu.be/GHKYCgXqqMY) – Xvegas

+0

@Xvegas - Ce serait génial si vous deviez poster la solution ici, soit comme un commentaire ou une autre réponse. Les liens vers des sources extérieures vont souvent mal pour une raison ou une autre, et personne ne saura quelle était votre solution. Merci! – rocketmonkeys

0

Je suppose que la propriété ConnectionString du modèle d'entité est vide. Vérifiez dans le navigateur de modèle.

La solution la plus simple consiste à supprimer toutes les chaînes de connexion dans les fichiers .config. Effectuez une recherche pour

connectionstring=" 

Supprimer la ligne (s) en tout ou en commentaire/eux avec

Supprimer votre edmx et le recréer. Assurez-vous que 'Enregistrer les paramètres de connexion d'entité dans Web.config en tant que:' est cochée.

Maintenant, la chaîne ConnectionString doit être définie et vous serez en mesure de générer des modèles complexes via l'importation de fonction.

0

Si cela ne fonctionne toujours pas pour vous, supprimez les autres chaînes de connexion. et re ajouter nouveau. le même problème est résolu par ceci. Suppression de toutes les chaînes de connexion et ajout de la chaîne de connexion Entity Framework en premier, puis ajouté les autres mais changé le nom.

0

Pour moi, comment je l'ai eu à travailler dans mon projet de modèle. Il y avait d'autres chaînes de connexion que j'avais laissées là-dedans et qui contenaient "server =" (non lié à EDMX). Je viens de supprimer ces autres chaînes de connexion et l'assistant de mise à jour EDMX fonctionne comme annoncé.

Message d'erreur affiché: Impossible de mettre à jour le fichier App.Config en raison de l'exception suivante: 'Le mot clé' server 'n'est pas pris en charge.'

0

Ma solution à ce même problème (VS2013) était le suivant:

  1. Aller au Navigateur de modèles
  2. clic droit YourModel.edmx
  3. Mise à jour Modèle de base de données
  4. Ensuite, il m'a incité à sélectionnez la connexion. J'ai sélectionné la connexion que je voulais et je suis passé à l'écran suivant.
  5. Ajouter/Actualiser/Supprimer ce dont vous avez besoin.
  6. Sélectionnez Terminer et voilà, la connexion est ici.
0

Vous devez ajouter à nouveau la chaîne de connexion chaque fois que vous ajoutez une procédure stockée. Sinon, il n'y aura pas de carte lorsque vous essaierez d'obtenir les colonnes sur lesquelles vous obtenez un message sur l'importation "Edit Function". Vous verrez un message disant "Aucune connexion à la base de données n'a été configurée pour ce modèle". Donc, ma solution de contournement est de réinstaller la procédure stockée, mais ce qui se passe quand j'ai 20 ou plus alors chaque fois que je vais devoir refaire toutes les procédures stockées. Ou créer un nouveau modèle, c'est le contre de cela.

Voici le lien de ma solution il y a une vidéo et tout sauf que j'essaie de comprendre Comment faire avec la suppression du modèle ou l'ajout de la chaîne de connexion VIDEO LINK OU stack overflow solution puisqu'il n'y a pas encore de carte de magasin procédure que j'utilise une classe que ma compagnie doit récupérer a la table de la procédure de magasin et envoie alors les données comme chaîne de JSON si vous voulez que cette solution me le permette et alors je ferai le plateau avec l'explication. chaîne de connexion dsn et ODBC "Open Database Connectivity").

Questions connexes