KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Lets say that I have a particular way of deciding whether some strings "match", like this: public bool stringsMatch(string searchFor, string searchIn) { if (string.IsNullOrEmpty(searchFor)) { return true; } return searchIn != null && (searchIn.Trim().ToLower().StartsWith(searchFor.Trim().ToLower()) || searchIn.Contains(" " + searchFor)); } I would like to pull matches out of a database using Linq To Entities and this helper. However, when I try this: IQueryable<Blah> blahs = query.Where(b => stringsMatch(searchText, b.Name); I get "LINQ to Entities does not recognize the method..." If I re-write the code as: IQueryable<Blah> blahs = query.Where(b => string.IsNullOrEmpty(searchText) || (b.Name != null && (b.Name.Trim().ToLower().StartsWith(searchText.Trim().ToLower()) || b.Name.Contains(" " + searchText))); Which is logically equivalent, then things work fine. The problem is that the code isn't as readable, and I have to re-write it for each different entity I want to match. As far as I can tell from questions like this one , what I want to do is impossible at the moment, but I'm hoping that I'm missing something, am I?
Tags (comma-separated)
Save Edits
Cancel