Avatar billede el_fredo Praktikant
11. maj 2009 - 10:15 Der er 1 løsning

LINQ Wildcard/LIKE

Hej
Jeg arbejder for tiden med LINQ, og har i den forbindelse lavet en klasse med metoder (i C#) der tager sig af at konstruere et "Where" statement som returneres. Dette statement kan bygges op vha. en eller flere af de metoder jeg har gjort public.

Jeg har imidlertid et problem med at få min søgning på bynavn til at fungere. Som det fungerer nu, så vil en søgning på fx "København" kun give de resultater der har det præcise navn "København" stående som bynavn. Bynavne som "København N", "København K" eller "København Ø" dukker altså ikke op. Meget uhensigtsmæssigt.

Jeg har fundet en del sider på nettet som omhandler wildcards i LINQ, men de fleste nævner at man skal bruge [Variabelnavn].Contains(parameter). Jeg får dog intet resultat når jeg bruger .Contains, så jeg ved ikke hvad jeg gør galt - og om det er den korrekte måde at lave en LIKE-søgning i LINQ.

Her er en stump af den kode jeg har forsøgt mig med:

public static Expression GetExpression(ParameterExpression parameter, string property, string value)
{
Expression prop = Expression.Property(parameter, property);
Expression val = Expression.Constant(value);
return Expression.Equal(prop, val);
}

GetExpression(parameter, "City", "City.Contains(@" + cityName + ")");

Søgningen fungerer ikke - jeg får 0 resultater hvis jeg søger på noget jeg ved eksisterer.

Jeg har også forsøgt mig med et par andre ting, som jeg desværre ikke fik skrevet ned. Håber der er nogle der kan sende mig i den rigtige retning.
Avatar billede el_fredo Praktikant
05. juli 2010 - 10:07 #1
Der er vist ingen der ved det...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester