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 :

Quest-ce qui diffère de ces requêtes pour que certaines causent une exception


Sujet :

Linq

  1. #1
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 438
    Points
    1 438
    Par défaut Quest-ce qui diffère de ces requêtes pour que certaines causent une exception
    Bonjour,

    Je décide d'en ouvrir un nouveau fil pour éviter d'induire un sujet existant en erreur (Comment gérer les données vides (NULL) dans la requête Linq Entity vers une BD)

    Deux requêtes Linq sous VB.NET avec une petite différence, la 1ère marche très bien mais la 2nde fait une EntityCommandExecutionException
    Query 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    From par In parutions.Include("messages").Include("messages.tarifs").Include("messages.tarifs.formats").Include("messages.tarifs.produitsvendus.distributions.fournisseurs").Include("messages.parutions").Include("messages.tarifs.produitsvendus.supports").Include("messages.tarifs.produitsvendus.supports.medias") Where par.messages.plansmedias.IdPlanMedia = 12 And par.messages.tarifs.produitsvendus.distributions.fournisseurs.IdFournisseur = 5 And par.messages.tarifs.produitsvendus.supports.medias.IdMedia = 2 Select par
    Query 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    From par In parutions.Include("messages").Include("messages.tarifs").Include("messages.tarifs.formats").Include("messages.tarifs.produitsvendus.distributions.fournisseurs").Include("messages.parutions").Include("messages.tarifs.produitsvendus.supports").Include("messages.tarifs.produitsvendus.supports.medias") Where par.messages.plansmedias.IdPlanMedia = 12 And par.messages.tarifs.produitsvendus.distributions.fournisseurs.IdFournisseur = 5 And par.messages.tarifs.produitsvendus.supports.medias.IdMedia = 2 And par.messages.HeureParution = "7h30-7h45" Select par
    La seule différence de ces 2 requêtes est And par.messages.HeureParution = "7h30-7h45" et je précise qu'il y a bien un index sur les champs utilisés dans la clause WHERE

    Le plus bizarre c'est qu'avec LinqPad un outil que EquinoxeDotnet m'avait conseillé: les 2 requêtes fonctionnent bien mais une 3ème requête ne marche pas sur LinqPad:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    From par In parutions.Include("messages").Include("messages.tarifs").Include("messages.tarifs.formats").Include("messages.tarifs.produitsvendus.distributions.fournisseurs").Include("messages.parutions").Include("messages.tarifs.produitsvendus.supports").Include("messages.tarifs.produitsvendus.supports.medias") Where par.messages.plansmedias.IdPlanMedia = 1 And par.messages.tarifs.produitsvendus.distributions.fournisseurs.IdFournisseur = 9 And par.messages.tarifs.produitsvendus.supports.medias.IdMedia = 1 Select par
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  2. #2
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 438
    Points
    1 438
    Par défaut
    Je continue encore de galérer sur le fait que Query 1 marche et Query 2 avec une condition de plus ne marche pas

    La solution que j'ai trouvée c'est que peut-être il faut un include de plus: j'ai donc ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Include("messages.trancheshoraires")
    pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    And par.messages.HeureParution = "7h00-7h15"
    Ca devrait marcher mais toujours la même exception EntityCommandExecutionException alors que mon default commandtimeout est déjà à 500s mais bon une simple requête qui n'arrive à s'exécuter en 1 mn est déjà pas bonne ...
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  3. #3
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 438
    Points
    1 438
    Par défaut Plus ridicule que ça tu meurs!
    J'ai trouvé la source du problème et c'est vraiment ridicule: j'effectue une requête sur la table "parutions" alors que plus loin je l'intègre encore dans mes include => ".Include("messages.parutions")"

    From par In parutions.Include("messages").Include("messages.tarifs").Include("messages.tarifs.formats").Include("messages.tarifs.produitsvendus.distributions.fournisseurs").Include("messages.parutions").Include("messages.tarifs.produitsvendus.supports").Include("messages.tarifs.produitsvendus.supports.medias")
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  4. #4
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Question bête: As tu réellement besoin de tous ces Include ?

  5. #5
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 438
    Points
    1 438
    Par défaut
    Techniquement parlant, je sais que ce n'est pas optimal mais l'application était déjà comme ça avant que j'arrive donc il faudrait beaucoup de temps pour tout changer
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par randriano Voir le message
    Techniquement parlant, je sais que ce n'est pas optimal mais l'application était déjà comme ça avant que j'arrive donc il faudrait beaucoup de temps pour tout changer

  7. #7
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    La n'est pas la question
    Est ce que ces includes sont réellement utilisés derrière (utilisation du graph d'objet généré)? Ou c'est juste pour faire les clauses where?

  8. #8
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 438
    Points
    1 438
    Par défaut
    Citation Envoyé par PitMaverick78 Voir le message
    La n'est pas la question
    Est ce que ces includes sont réellement utilisés derrière (utilisation du graph d'objet généré)? Ou c'est juste pour faire les clauses where?
    Ils sont utilisés derrière! Car j'ai besoin des retours des autres tables liées
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. requête pour ne pas surcharger une base
    Par stef1330 dans le forum SQL
    Réponses: 1
    Dernier message: 30/10/2007, 12h04
  2. [Conception] Requête pour la création d'une table
    Par jonnyboy dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 03/05/2007, 13h21
  3. requête pour "effacer" certaines valeurs ?
    Par kikidrome dans le forum Requêtes et SQL.
    Réponses: 24
    Dernier message: 27/02/2007, 16h35
  4. Requête pour copie rapide d'une ligne dans la table ?
    Par renaud26 dans le forum Requêtes
    Réponses: 1
    Dernier message: 17/10/2006, 09h52
  5. Requête pour remplacer caractères dans une table
    Par elliott1961 dans le forum Installation
    Réponses: 5
    Dernier message: 16/01/2006, 01h47

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