I am new to LINQ and OrmLite/MySql. I have a service request argument that needs to result in a where clause:
`Name` LIKE '%something%' OR `Name` LIKE '%something%else%'
I know I can create an IN()
or an =
clause, via:
ev.Where(rn => Sql.In(rn.Name, request.Name)); // Assuming an array here
ev.Where(rn => rn.Name== request.Name));
But I can't seem to find a construct that lets me build up a LIKE
. Also, Name
is actually an alias so I am trying to avoid constructing the where clause manually.
You can build that particular example using Contains
, i.e:
ev.Where(rn => rn.Contains(rn.Name, "something")
|| rn.Contains(rn.Name, "something%else"));
StartsWith
and EndsWith
are generally used in LINQ to generate LIKE
clauses with a wildcard at only one end (but it does appear the MySql dialect defines StartsWith
somewhat differently, likely for efficiency.)
You can check the default dialect source code to confirm what gets generated for EndsWith
and Contains
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With