|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : août 2008 Messages : 254 ![]() |
Bonjour,
Je dois récupérer les élements d'une Table en fonction d'une recherche effectuée dans une Vue. J'ai : - une Table MesDonnees (avec les colonnes id, Titre, Description, Date, etc ) - une Vue MesDonneesVue (avec les colonnes id, TitreTraite, DescriptionTraitee) Dans ma méthode C# j'ai en paramètre une liste de mots List<string> listeMots. J'aimerais récupérer les éléments de la table MesDonnees contenant tous les mots de la liste listeMots, soit dans la colonne TitreTraite soit dans la colonne DescriptionTraitee. Je n'arrive pas à écrire cette requête en LINQ to SQL Si quelqu'un peut m'aider... Merci beaucoup Cedric |
|
|
00
|
|
|
#2 |
![]() ![]() |
Salut,
Peut-on voir ce que t'as commencé à écrire au moins ?
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() ![]() |
A vue de nez, je dirais quelque chose comme :
Code C# :
__________________
Microsoft MVP : Visual C# MCPD - Windows Developer 4 MCPD - Web Developer 4 MCTS - Silverlight 4, Development “If debugging is the process of removing bugs, then programming must be the process of putting them in.” (Edsger W. Dijkstra) |
||
|
00
|
|
|
#4 | ||||
|
Nouveau Membre du Club
![]() Inscription : août 2008 Messages : 254 ![]() |
J'ai écrit ça. N'ayant pas réussi à le faire en une seule requête, j'ai voulu le faire en 2 mais ça ne marche pas non plus
Code :
Code :
Mais j'aimerais quand arriver à le faire en une seule fois. |
||||
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : août 2008 Messages : 254 ![]() |
GuruuMeditation, ça ne peut pas marcher puisque qu'à aucun moment tu mentionnes MesDonneesVue
|
|
|
00
|
|
|
#6 |
![]() ![]() |
Déjà peut-on savoir ce qui différencie MesDonnees et MesDonneesVue ?
Une vue est toujours censée faciliter l'écriture des requêtes. Alors je trouve bizarre que tu ais besoin à la fois de MesDonnees et MesDonnesVue dans une seule et même requête. ça n'a aucun sens s'il se trouve que MesDonneesVue se base déjà sur MesDonnees. |
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : août 2008 Messages : 254 ![]() |
En fait MesDonneesVue est une vue qui se base sur la table MesDonnees. Les colonnes TitreTraite et DescriptionTraitee de la vue sont les colonnes Titre et Description de la table MesDonnees mais avec un traitement particulier, ce qui me permet de faire ma recherche.
|
|
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Inscription : août 2008 Messages : 254 ![]() |
C'est vrai que tu as raison je pourrais créer une vue qui reprend toutes les colonnes de MesDonnees et avec les 2 colonnes en plus (TitreTraite et DescriptionTraitee)
Mais de toute façon ça arrive souvent qu'on ait besoin de faire ce genre de chose. J'aimerais quand même comprendre comment on fait |
|
|
00
|
|
|
#9 | |||
![]() ![]() |
Citation:
Je suis POUR cette idée. Une fois que t'auras ta vue définie de cette façon je pense que tu pourras hérité ton entité MesDonneesVue à partir de ton entité MesDonnees. En Entity Framework je sais comment faire mais en Linq to SQL je n'ai jamais essayé mais une recherche sur Google devrait pouvoir te dire comment faire. Si t'arrive à faire ce que j'ai dit alors ta requête devrait être du genre : Code C# :
Test données héritant de MesDonnees alors rien t'empêche de faire le cast pour utiliser ce type d'objet. |
|||
|
00
|
|
|
#10 | ||
|
Nouveau Membre du Club
![]() Inscription : août 2008 Messages : 254 ![]() |
Je viens de tester. C'est vrai que c'est plus logique de faire comme ça mais j'ai un soucis car
Code :
En fait si listeMots contient "Mot1" et "Mot2" alors la requête cherche les éléments contenant "Mots2" uniquement |
||
|
|
00
|
|
|
#11 |
![]() ![]() |
Ce n'est pas logique vu que tu parcours toute la liste. Sinon question bête : regardes bien si ta liste contient vraiment le terme dont tu parles ?
|
|
00
|
|
|
#12 |
|
Nouveau Membre du Club
![]() Inscription : août 2008 Messages : 254 ![]() |
oui je viens de vérifier. En fait c'est comme si à chaque passage dans le foreach la condition WHERE précédente était remplacée par la nouvelle
|
|
|
00
|
|
|
#13 |
![]() ![]() |
Je comprends maintenant.
![]() Vraiment j'aimerai savoir pourquoi tu te tapes Linq to SQL ? ![]() Avec Entity Framework, mes tâches de recherche étaient largement facilité par Entity SQL qui me permettait de générer dynamiquement mes requêtes avec ObjectQuery. je ne sais pas on peut faire ce genre de truc avec Linq to SQL Là je dois aller faire dodo. Bonne chance |
|
00
|
|
|
#14 |
|
Nouveau Membre du Club
![]() Inscription : août 2008 Messages : 254 ![]() |
Merci pour le temps que tu as passé.
En fait je ne savais pas comment faire mes requête et un type m'a dit "utilise LINQ tu verras c'est génial"... J'avoue que pour les trucs super simple c'est génial mais dès que ca devient très légèrement plus complexe (car au fond y'a rien de complexe dans la requête) c'est génial pour papotter sur les forum |
|
|
00
|
|
|
#15 |
|
Membre Expert
![]() ![]() |
Linq to SQL est abandonné par MS. Au profit de linq entity (en gros). Alors Linq c'est génial, j'aime beaucoup mais, comme pour tout, ce n'est pas la solution ultime et parfois il faut passer par une bonne vieille procédure stockée
__________________
Microsoft MVP : Visual C# MCPD - Windows Developer 4 MCPD - Web Developer 4 MCTS - Silverlight 4, Development “If debugging is the process of removing bugs, then programming must be the process of putting them in.” (Edsger W. Dijkstra) |
|
00
|
|
|
#16 | |
![]() ![]() |
Citation:
Dans ton cas vu qu'il s'agit d'ORM soit la personne voulait dire Linq to SQL ou Linq to Entities |
|
|
00
|
|
|
#17 |
|
Nouveau Membre du Club
![]() Inscription : août 2008 Messages : 254 ![]() |
Bon là c'est clair je suis complètement perdu entre LINQ to SQL et ENTITIES. Va falloir que je me renseigne sur la différence. A quoi vois-tu que c'est du LINQ to SQL que j'utilise et non pas du LINQ to ENTITIES ? Enfin si ça se voit...
Cédric, LINQ or not LINQ ? but LINQ |
|
|
00
|
|
|
#18 | |
![]() ![]() |
Citation:
![]() Sinon pour la comparaison Linq to SQL et Entity Framework (Linq to Entities) regardes cette discussion. |
|
|
00
|
|
|
#19 |
|
Nouveau Membre du Club
![]() Inscription : août 2008 Messages : 254 ![]() |
Je pense que j'ai du me planter en disant LINQ to SQL.... Ca doit être ENTITIES.
Vous vous dites "il est perdu lui !" ? ben oui...
|
|
|
00
|
|
|
#20 |
![]() ![]() |
Question assez simple : le fichier contenant ton modèle (avec les entités etc...) porte quelle extension ?
|
|
00
|
Copyright © 2000-2012 - www.developpez.com