我有一个执行“LINQ to Entities”查询的 C# 应用程序。
它连接的数据库是 MS SQL 2012。数据库排序规则是“希伯来语 CI”。
仍然 - 如果我执行如下查询:
return users.Where(us => us.FirstName.Contains("joh"));
它不会获取具有'John' 的'FirstName' 的记录。只有名字是 'john' 的。
我以为这是由数据库排序规则在SQL Server端确定的,但显然我错了......
另外 - 我检查了“名字”列的排序规则,并将其设置为“数据库默认值”。
我在这里想念什么?
.
[ 更新 ]
阅读一些评论后 - 我需要澄清:
我使用的是 LINQ-TO-ENTITIES,而不是本地查询。
完整的代码是:
public List<User> GetUsersByName(IMyDBEntities context, String filterBy)
{
IEnumerable<User> users = context.Users;
return users.Where(us => us.FirstName.Contains("filterBy")); // filterBy = 'joh'
}
完整功能包含更多过滤器(按年龄过滤,按地址过滤等...)
这一切都发生在“服务器”用户列表上,只有当我执行“.ToList()”时,查询才会真正使用所有过滤器触发。