和Linq一样实体

时间:2010-10-20 19:23:45

标签: c# .net sql linq linq-to-entities

我知道.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

3 个答案:

答案 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;
        }