Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 比较linq中的希腊语(或其他非拉丁语)字符串_C#_Linq_Entitymanager - Fatal编程技术网

C# 比较linq中的希腊语(或其他非拉丁语)字符串

C# 比较linq中的希腊语(或其他非拉丁语)字符串,c#,linq,entitymanager,C#,Linq,Entitymanager,我试图用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(f

我试图用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工作台中使用提供值的查询,一切正常,但在代码中查询不返回任何结果

编辑:我已使用MySQL连接器连接实体管理器。我之前没有考虑过,但这是一个问题,因为MsSQL连接一切正常


关于如何执行上述操作,您有什么想法吗?

在区域敏感查询中,您不应该在不提供值的情况下使用
string.Equals()
,例如:

var people = pe.Person.Where(
    per => per.FirstName.Equals(fname, StringComparison.CurrentCultureIgnoreCase));
是的,L2E支持此重载


如果仍然不起作用,则可能是AppDomain的当前区域性或DB的排序规则错误。查看SQL事件探查器中的查询/参数。

这个
var people=(ObjectQuery)pe.Person.Where(per=>per.FirstName.Equals(fname)).ToList()怎么样。工作正常吗?用
=
代替
等于
怎么样?它也不起作用?将列表强制转换为ObjectQuery会有什么帮助?这甚至是不允许的。我用一个diffirent对象尝试了相同的代码,它正常运行Eddik,当字母表是基于拉丁语的语言时,它运行良好,只是不是希腊语。你是这样执行代码的吗?不,这也不行。我的意思是它确实编译了,但它没有返回任何东西。我还检查了排序规则,它是用希腊语设置的。如果排序错误,它将无法在其他语言(如php)上运行(它确实如此),请阅读本文的其余部分。您需要查看实际的SQL,看看哪部分不正确。为LINQ指定区域性是正确的做法。至于你正在经历的其他问题的位置,我无法从你在帖子中所写的内容推断出它们。你的LINQ只是这个链条的一部分。