我正在尝试在linq中编写一个返回如下结果的查询:
PeopleEntities pe = new PeopleEntities();
String fName = "Τάκης";
var people = pe.Person.Where(per => per.FirstName.Equals(fname)).ToList();
当我使用
String query = ((ObjectQuery)pe.Person.Where(per => per.FirstName.Equals(fname))).ToTraceString();
Console.WriteLine(query);
然后在MySQL WorkBench中使用查询来提供值,一切正常,但在代码中查询不返回任何内容。
编辑:我已经使用MySQL连接器连接了实体管理器。我之前没有想过,但这是问题所在,因为使用 MsSQL 连接一切正常
关于如何执行上述操作的任何想法?
在区分
区域的查询中,不应在没有提供 StringCompare 值的情况下使用 string.Equals()
,例如:
var people = pe.Person.Where(
per => per.FirstName.Equals(fname, StringComparison.CurrentCultureIgnoreCase));
是的,L2E 支持此重载。
如果这仍然不起作用,则可能是 AppDomain 的当前区域性或数据库的排序规则是错误的。查看 SQL 事件探查器中的查询/参数。