相关疑难解决方法(0)

LINQ不能使用string.contains?

这是我的代码:

string queryString = "Marco".ToLower();
utenti = db.User.Where(p => 
        queryString.Contains(p.Nickname.ToLower()) ||
            queryString.Contains(p.Nome.ToLower()) ||
            queryString.Contains(p.Cognome.ToLower())).ToList();
Run Code Online (Sandbox Code Playgroud)

但我得到:

String.Contains方法仅支持可在客户端上计算的参数.

为什么?我不能用.Contains()吗?

.net c# linq linq-to-entities linq-to-sql

14
推荐指数
1
解决办法
7285
查看次数

编译Linq和String.Contains

我正在使用Linq-to-SQL,我使用编译的Linq来获得更好的性能.

我有一个INT名为"LookingFor"字段的用户表,它可以具有以下值:1,2,3,12,123,13,23.

我写了一个查询,根据"lookingFor"列返回用户,我想返回包含"lookingFor"值的所有用户(不仅仅是那些等于它的用户).

在示例if user.LookingFor = 12和query参数中1,应该选择此用户.

private static Func<NeDataContext, int, IQueryable<int>>
      MainSearchQuery = CompiledQuery.Compile((NeDataContext db, int lookingFor) =>
         (from u in db.Users
          where (lookingFor == -1 ? true : u.LookingFor.ToString().Contains(lookingFor)                         
    select u.username);
Run Code Online (Sandbox Code Playgroud)

这个工作在非编译的linq上,但在使用编译时抛出错误.如何使用编译的Linq修复它?

我收到此错误:

String.Contains方法仅支持可在客户端上计算的参数.

.net linq linq-to-sql

3
推荐指数
1
解决办法
2557
查看次数

标签 统计

.net ×2

linq ×2

linq-to-sql ×2

c# ×1

linq-to-entities ×1