c# - 在字符串末尾找到匹配项时,使用 .Contains() 和 .ToLowerInvariant() 的 EF 查询结果没有匹配项

标签 c# linq entity-framework-4

是否可以进入 linq 查询?我有一个最简单形式的 Entity Framework 4 查询的 linq:

List = List.Where(f => f.Value.ToString().ToLowerInvariant().Contains(filter.ToLowerInvariant()));

这是针对 Entity Framework DbContext 的查询,我无法理解为什么它适用于类似的东西:

搜索 001 的列表不会针对以下列表产生任何结果

  1. 测试001
  2. 测试002
  3. 测试003
  4. 测试004

但是任何其他搜索都会产生结果(例如 t00Test)

更新

基本上,我在寻找为什么当我使用 contains 并且值匹配字符串的结尾而不是中间或开头时,上述查询不会返回结果。这真的很令人困惑。

好的,它似乎与 ToLowerInvariant() 有关 - 当我删除该方法时它工作得很好。

最佳答案

ToLowerInvariant() 似乎产生了错误。 ToLower() 工作得很好。

关于c# - 在字符串末尾找到匹配项时,使用 .Contains() 和 .ToLowerInvariant() 的 EF 查询结果没有匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4541959/

相关文章:

c# - 在 C++ 中部署 GBM 模型 |让 Predict.gbm 在 R 之外工作

c# - 如何在 C# 电子邮件中将正文格式设置为 HTML

c# - Linq to Sql Count Include 联接

包含具有枚举类型的属性的 C# 接口(interface)

c# - 创建复杂的 LINQ 查询

wpf - Entity Framework 4 和 WPF

.net - DbContext ChangeTracker : Id of Added Entity for Auditing

c# - 如何使用 C# 在 MongoDB 中的嵌套子数组文档中查找元素

linq - 您可以不使用连接语句将此 Linq 语句转换为 Lambda 吗?

c# - 在 Entity Framework 中映射多对多关系