我知道.Contains()
方法与LIKE %therm%
相似,.StartsWith()
方法与LIKE therm%
相似,.EndsWith()
方法与LIKE %therm
相似,但是。{ ..
有没有办法在**Linq to Entities**
下面这样做?
SELECT * FROM [dbo].[Users] WHERE Name LIKE 'rodrigo%otavio%diniz%waltenberg'
PS:我正在使用LINQ TO ENTITIES。 NOT LINQ TO SQL
答案 0 :(得分:2)
这应该可以解决问题。
from u in context.users
where System.Data.Linq.SqlClient.SqlMethods.Like(
u.Name,
"rodrigo%otavio%diniz%waltenberg")
select u
修改强>
事实证明这只适用于LINQ2SQL,而不适用于LINQ2Entities。
Linq SqlMethods.Like fails表示您可以直接在表格中使用Where
。
答案 1 :(得分:2)
是,you can do this with ESQL /查询构建器语法:
var matching = Context.Users.Where("it.Name LIKE 'rodrigo%otavio%diniz%waltenberg'");
答案 2 :(得分:-1)
如何在LINQ语句中使用正则表达式?如下所示:
RegularExpressions.Regex p
= new RegularExpressions.Regex("rodrigo%otavio%diniz%waltenberg");
using (DataContext.MyDataContext context = new MyDataContext())
{
var result = from u in context.users
where p.IsMatch(u.name)
select u;
}