2009-05-11 6 views
0

Je suis nouveau à LINQ et j'ai un petit problème. J'ai créé un fichier DBML et ai traîné toutes mes tables à la surface de conception. Maintenant, lorsque j'essaie de faire glisser une procédure stockée dans le volet des méthodes, Visual Studio pense une seconde et ne fait rien ensuite. Ma méthode n'apparaît pas dans le volet des méthodes.LINQ to SQL, les procédures stockées et le volet Méthodes (plus comme méthodes PAIN!)

Une erreur est-elle survenue dans les coulisses? Si oui, comment puis-je résoudre le problème?

Répondre

1

Il est possible que le concepteur LINQ to SQL ne parvienne pas à comprendre le schéma de votre procédure stockée, en particulier si vous utilisez des tables temporaires. Essayez de modifier votre procédure stockée pour simplement sélectionner dans la table en question, la mapper dans le concepteur (en faisant glisser sur le haut de la table correcte), puis redéfinir la procédure sur le code d'origine.

+0

vous l'avez! Il y avait une instruction if qui retournerait un schéma légèrement modifié. J'ai enlevé la déclaration et l'a importé correctement. Je pourrais voir cela étant un problème avec des procédures plus complexes ... – brian

0

Je viens de l'essayer moi-même. J'ai utilisé VS2008 SP1, traîné chaque table de ma base de données dans le volet de classe et ils ont ajouté. Puis j'ai traîné dans une procédure stockée. Il a fallu plus de temps pour traiter le SP puis les tables, mais la méthode est apparue sans problème dans mon volet de méthodes. Votre procédure stockée peut ne pas être en mesure d'utiliser les métadonnées disponibles pour créer la méthode avec succès.

Est-ce que je l'ai fait correctement?

0

Jep, j'ai eu le même problème. Ma faute était que la procédure stockée que j'essayais d'ajouter au volet avait un résultat de retour avec un type de données géographique. Ceci n'est pas encore supporté par le concepteur LinQ2SQL. Ce que vous pouvez faire pour tester vos types de données de retour (si vous utilisez des types de données exotiques), c'est de les ajouter en tant que paramètres à votre procédure stockée. Le concepteur va donner une erreur.

Par exemple, essayez d'ajouter la procédure stockée suivante dans le volet génère une erreur:

CREATE PROCEDURE test 
(
    @GeographicLocation geography 
) 
AS 
BEGIN 
END; 
Questions connexes