我正在尝试在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连接一切正常
关于如何执行上述内容的任何想法?
答案 0 :(得分:0)
在区域敏感的查询中,如果不提供StringComparison值,则不应使用string.Equals()
,例如:
var people = pe.Person.Where(
per => per.FirstName.Equals(fname, StringComparison.CurrentCultureIgnoreCase));
是的,L2E支持此重载。
如果仍然无效,AppDomain的当前文化或数据库的排序规则可能是错误的。查看SQL事件探查器中的查询/参数。