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

Linq Discussion :

[EF]Création Requête Dynamique


Sujet :

Linq

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 42
    Points : 33
    Points
    33
    Par défaut [EF]Création Requête Dynamique
    Bonjour,
    Je tente de faire du refactoring sur un ensemble de fonctions que j'ai créées et pour cela je voudrai faire une sorte de concaténation d'une requête LINQ avec des paramètres.

    J'ai deux optiques :

    • soit j'utilise des paramètres qui seraient des chaines de caractères avec une requête à trou.
    • soit je crée une ensemble de fragments de requêtes est je concatène les bon fonction des paramètre.

    Tous ce qu'il me faudrait serai un outil de concaténation tel le '+' pour les chaine de caractère. Je sais qu'il est fort probable que cela ne soit pas réalisable mais je ne veux pas passé à coté d'une occasion de faire des requêtes dynamique et ainsi virer les doublons de code.

    Je prend toutes informations quel aille dans mon sens ou au contraire confirme mon idée d'impossibilité histoire que j'aille au plus vite car ma mission est fini dans peu de temps et j'aimerai finir un maximum de chose et pas allez perdre du temps sur de fausse mauvaise piste.

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Aurais tu un exemple de requêtes que tu souhaiterais factoriser ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 42
    Points : 33
    Points
    33
    Par défaut
    Oui, par exemple sur un modèle avec 3 entités Point, Case, ValeurPression.
    clef Point : Id_Point
    clef Case : Id_Case
    clef ValeurPression : Id_Pression

    ValeurPression est associé à Point et Case

    Voici deux requêtes utilisé pour une suppression, je veux récupérer la liste des ValeurPression à supprimer en fonction du Point ou de la Case donnée:
    1. Code Linq : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      (from variable in db.ValeurPression
      where variable.Point.Id_Point == variablePointParamètre.Id_Point
      select variable).ToList();
    2. Code Linq : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      (from variable in db.ValeurPression
      where variable.Case.Id_Case == variableCaseParamètre.Id_Case
      select variable).ToList();


    c'est requête sont dans deux surcharge d'une fonction qui s'effectue en fonction du paramètre passé Point ou Case et moi je voudrai faire un fonction avec ce genre de prototype:
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public static List elementASupprimer( Contexte db,
    string tableVisé,
    string tableSource, 
    string clefAVerifier) {}

    et ainsi faire une requête dans ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (from variable in db.tableVisé
    where variable.tableSource.clefAVerifier.ToString == clefAVerifier
    select variable).ToList();
    ou dans le genre, bien sûr il me manque au minimum, s'il existe, un opérateur de concaténation.

  4. #4
    Membre habitué Avatar de jkakim
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Points : 148
    Points
    148
    Par défaut Requette dynamique
    Salut tous le monde !

    Je devais peut-etre créer une nouvelle discution sur mon blême mais je crois ils ont tous les deux un même point de convergence... Resoudre le sien c'est resoudre le mien.

    Je suis en charge de développer une classe ( ou dll) en Linq, dans un projet, pouvant accepter n'importe quelles requettes et pouvant se connecter à n'importe quelle BD.
    Je vous assure les gars ça m'arrache les chéveux je besoin des vos conseils et orientations.

    Déjà, je crois pouvoir utiliser la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public DataSet GetAllData (string connectionStr, string tableName, string query)
    {
    DataContext monDC = new DataContext (connectionStr);
    string typeTable = tableName;
    Assembly asbly = Assembly.LoadFrom(@"c:\Users\...\maClasse.dll");
    foreach (Type type in asbly.GetType())
    {
    if (typeTable == type.Name)
    {
    var res = monDC.ExecuteQuery<type>(query);
    }
    }
    }
    Ce code leve des exceptions au niveau de type, je recherche dans l'assembly le type correspondant à la table mise en paramettre mais la methode ExecuteQuery<type>(); ne l'accepte pas...
    Alors je m'arrache les cheveux je besoin de vous tous.

    Merci d'avance !

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/01/2012, 21h55
  2. [WD15] Création de requêtes dynamiques
    Par thierrybatlle dans le forum WinDev
    Réponses: 5
    Dernier message: 23/10/2010, 02h36
  3. Création d'une requête dynamique
    Par chris81 dans le forum Linq
    Réponses: 0
    Dernier message: 14/01/2009, 17h33
  4. Réponses: 3
    Dernier message: 04/08/2008, 15h35
  5. Réponses: 1
    Dernier message: 01/08/2008, 17h25

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