0

我正在尝试在 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 连接一切正常

关于如何执行上述操作的任何想法?

4

1 回答 1

0

string.Equals()在区域敏感的查询中,如果不提供StringComparison值,则不应使用,例如:

var people = pe.Person.Where(
    per => per.FirstName.Equals(fname, StringComparison.CurrentCultureIgnoreCase));

是的,L2E 支持这种重载。

如果这仍然不起作用,则 AppDomain 的当前文化或数据库的排序规则可能是错误的。查看 SQL Profiler 中的查询/参数。

于 2012-12-07T13:11:28.257 回答