I have an application with the following code:
string passedValue = "5";
results = db.procedure1
.Where(c => c.User.Contains(passedValue))
.OrderBy(o => o.User).ToList();
The data in the Users
column looks like this:
05621
18763
58763
98599
When I run the code, the resulting list contains 05621, 58763, and 98599
Instead of a Contains
, I would like to implement a Like
. In other words, I want to retrieve each data record where User is LIKE "5%"
.
The resulting list should be:
58763
How would I accomplish this?
Thanks!
CodePudding user response:
Replace the .Where()
clause that you have with something like below:
string passedValue = "5";
results = db.procedure1
.Where(c => EF.Functions.Like(c.User, $"%{passedValue}%"))
.OrderBy(o => o.User).ToList();
CodePudding user response:
For LIKE "5%"
we have StartsWith
so you can do like this
string passedValue = "5";
results = db.procedure1
.Where(c => c.User.StartsWith(passedValue))
.OrderBy(o => o.User).ToList();
For LIKE "%5"
we have EndsWith
and LIKE "%5%" -
Contains`