need "like" clause

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 , ie:

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 .

链接地址: http://www.djcxy.com/p/11304.html

上一篇: 部署ClickOnce时缺少dll

下一篇: 需要“喜欢”条款