IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Accès aux données Discussion :

Probléme d'appel d'une fonction avec EF


Sujet :

Accès aux données

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Probléme d'appel d'une fonction avec EF
    Bonjour,
    Mon probléme est que je suis entrain d'essayer d'appeler une fonction "fs_Calcul_Distance_TR" en utilisant ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     float dis = context.ExecuteFunction("fs_Calcul_Distance_TR", new ObjectParameter("1", "Frances"));
    Comme vous voyez cette fonction a en entrée deux variables de type (int ,string), et le problème est la :
    impossible de convertir 'int' en 'string'.
    Ma question est : y a t-il une possibilité pour appeler une fontion dans EF ayant des variables en entrées de différents types (int et string), bien sur l'appel ce fait de c# (vs2010) avec sqlserver2008, ou dois-je convertir tous les variables d'entrée en string?

    Voila je sais que c'est un problème un peu bête mais je suis encore en phase d'apprentissage,

    Merci d'avance.

  2. #2
    Membre confirmé

    Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2004
    Messages : 178
    Points : 648
    Points
    648
    Par défaut
    Bonjour,

    Si ton premier argument est un int, pourquoi le passer comme un string ? Essai avec un 1 ou lieu de "1".

  3. #3
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    Oui, mais il faut que tu aies deux paramètres distincts.
    Par exemple :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ObjectParameter id = new ObjectParameter("Id", typeof(int32));
    ObjectParameter lastName = new ObjectParameter("lastName", typeof(String));

  4. #4
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    @Er3van: mais comment utiliser ces variables; j'ai fait ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     float dis = context.ExecuteFunction("fs_Calcul_Distance_TR2", new ObjectParameter("idbal", 1),new ObjectParameter("point", " France"));
    mais le compilateur maintenant me renvoie :
    Le FunctionImport « fs_Calcul_Distance_TR2 » est introuvable dans le conteneur « GeolocBD ».
    malgrés que j'ai ajouté cette fonction et qu'elle est bien visible dans l'explorateur de modéle de l'EF;

  5. #5
    Invité
    Invité(e)
    Par défaut
    As-tu essayé cette méthode ?

  6. #6
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    @h2s84 : j'ai essayer de suivre ce tutoriel mais il ne traite pas mon problème, voila l'erreur qui me bloque :

    Erreur 24 La méthode surchargée correspondant le mieux à 'Collecteur1.GeolocBD.fs_Calcul_Distance_TR(string, System.Data.Objects.ObjectParameter)' possède des arguments non valides
    Ma question est : comment instancier un objet X de type: "Objects.ObjectParameter" cet objet doit contenir deux champs un int et un string pour enfin l'inserer dans cette méthode comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     context.ExecuteFunction("fs_Calcul_Distance_TR ", X );
    Merci pour votre aide.

  7. #7
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    Essaye comme ça :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ObjectParameter monParamInt = new ObjectParameter("monParamInt", typeof(int32));
    ObjectParameter monParamString = new ObjectParameter("monParamString", typeof(String));
     
    // Attention, tu avais un espace qui trainait sur ton nom de fonction !
    context.ExecuteFunction("fs_Calcul_Distance_TR", monParamInt, monParamString);

Discussions similaires

  1. problème d'appel d'une fonction d'une autre classe
    Par kifouillou dans le forum Langage
    Réponses: 5
    Dernier message: 08/02/2007, 17h42
  2. appel d'une fonction avec parametre.
    Par rollernox dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/10/2006, 23h07
  3. [Système] Problème d'appel d'une fonction
    Par Ministar dans le forum Langage
    Réponses: 8
    Dernier message: 19/09/2006, 22h23
  4. Réponses: 7
    Dernier message: 12/03/2006, 21h18
  5. [FPDF] Erreur après appel d'une fonction avec include
    Par orus8 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 04/11/2005, 10h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo