Ik ben bezig om in een applicatie voor het eerst Linq to sql te gebruiken(alleen jammer dat MS het niet verder gaat uitwerken, maar alle aandacht op het Entity framework gaat zetten, dat i.v.m NHibernate nog erg onvolwassen is). Tot nu toe werkt linq to sql namelijk wel lekker. Maar loop nu tegen een probleem aan.
Voor een website wil ik het mogelijk maken om op redelijk veel velden te kunnen zoeken. En dan ook nog op meerdere waardes. Daarnaast is het ook een match als een deel van de zoekwaarde in het hele woord voorkomt.
Mijn eerste opzet is dat ik in mijn Dataacces methode(waar ik Linq gebruik) een List<string> binnen krijg met daarin alle ingevoerde zoekwaarden van het zoekveld op de webpagina. In het onderstaande code voorbeeld weet ik echter niet wat ik bij de ???? moet invullen. Als het 1 zoekwaarde was zou het een .Contains(zoekwaarde) zijn. Omdat deze volgens mij gelijk staat aan de sql like %zoekwaarde%. Maar hoe ga ik dat doen met meerdere zoekwaarden waar het aantal elke keer anders is?
Voor een website wil ik het mogelijk maken om op redelijk veel velden te kunnen zoeken. En dan ook nog op meerdere waardes. Daarnaast is het ook een match als een deel van de zoekwaarde in het hele woord voorkomt.
Mijn eerste opzet is dat ik in mijn Dataacces methode(waar ik Linq gebruik) een List<string> binnen krijg met daarin alle ingevoerde zoekwaarden van het zoekveld op de webpagina. In het onderstaande code voorbeeld weet ik echter niet wat ik bij de ???? moet invullen. Als het 1 zoekwaarde was zou het een .Contains(zoekwaarde) zijn. Omdat deze volgens mij gelijk staat aan de sql like %zoekwaarde%. Maar hoe ga ik dat doen met meerdere zoekwaarden waar het aantal elke keer anders is?
code:
1
2
3
4
5
6
7
8
9
10
| internal static Business.Model.Collections.ProductList Zoeken(List<string> zoekwaardes) { var query = (from p in db.Products where p.Naam.Contains????? || p.Omschrijving.Contains???? || p.Merk.Naam.Contains ???? select p) return ConvertToBusiness(query); } |