【发布时间】:2023-03-14 01:39:01
【问题描述】:
我试图在按用户名过滤后获取用户列表。
查询:
string filter="alex, faheem, Cohen";
var filterArr=filter.Split(new []{','},StringSplitOptions.RemoveEmptyEntries).Select(f=>f.Trim()).ToList();
var users= (from u in DbContext.Users
where filterArr.Any(y=> u.Name.Contains(y)) select u);
这给了我错误:
本地序列不能在查询运算符的 LINQ to SQL 实现中使用,但 Contains 运算符除外。
我不能使用filterArr.Contains(x.Name),因为名称列包含名字和第二个名字。就像在上面的列表中一样,他们是一个项目“alex”,我在名称列中组合了一个名称“Alex Hales”。所以如果我使用filterArr.Contains(x.Name) 它不会给我结果。
任何帮助将不胜感激。
【问题讨论】:
-
1.在 .Contains() 之前制作 ToLower() (filterArr - 所有值都应该更低) filterArr.Contains(x.Name.ToLower())
标签: c# linq linq-to-sql