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:
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:
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:
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
Partager