How do you check if a string contains any strings from a list in Entity Framework?
You can try using Any
method, I'm not sure whether it's supported but it's worth trying:
var result = context.Data.Where(data => searchTerms.Any(x => data.Name.Contains(x)) ||
searchTerms.Any(x => data.Code.Contains(x));
If this gives you NotSupportedException
you can add AsEnumerable
before Where
to fetch all records and execute the query in memory rather than DB.
I'm late to the party but using the SearchExtensions nuget package you could do something like the following
var result = context.Data.Search(x => x.Name, x => x.Code).Containing(searchTerms);
This builds an expression tree so will still perform the query on the server (and not in memory) and will essentially run the SQL you desire above