trying to get my head around using Lambda expressions to fetch data from my database.
Say I have a table that looks a bit like this (notice the spaces and casing):
name, count:
iPhone 4, 15
iphone 4, 2
iPhone4, 8
If I try to find items by name (using StartsWith()), I only want to fetch the result with the highest count, independent of casing and spaces. So searches for “iphone4” “i p h o n e 4”, “iPhone4” sholud all return the “iPhone 4”-record
Let’s assume that you have a Collapse string extension, which is not hard to write. One thing you’ll note is that there won’t be a mapping from this to SQL so the final filtering will have to be done in LINQ to Objects. You might be able to make the DB query more efficient by doing partial filtering (i.e., on iphone), then complete the filtering in memory.
Where Collapse is
Note: you’d be better off sanitizing your database if possible AND you really want these to map to the same thing.