LINQ Wildcard/LIKE
HejJeg 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.