使用.Contains()和.ToLowerInvariant()的EF查询在字符串末尾找到匹配时没有匹配

MyN*_*Job 14 c# linq entity-framework-4

是否可以进入linq查询?我有一个linq to entity framework 4查询,它是最简单的形式:

List = List.Where(f => f.Value.ToString().ToLowerInvariant().Contains(filter.ToLowerInvariant()));
Run Code Online (Sandbox Code Playgroud)

这是对实体框架的查询DbContext,我很难理解为什么它适用于以下内容:

列表搜索001产量没有针对以下列表的结果

  1. Test001
  2. Test002
  3. Test003
  4. Test004

然而,任何其他搜索产生结果(如t00Test)

更新

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

好吧,它似乎与某些事情有关ToLowerInvariant()- 当我删除该方法时,它工作得很好.

MyN*_*Job 22

它似乎ToLowerInvariant()产生错误.ToLower()工作得很好.