【发布时间】:2017-06-26 22:45:44
【问题描述】:
我正在使用 LINQ 搜索我的一个实体框架表并根据名称找到一个“组”。该名称是一个字符串,并且似乎是 Unicode(说它在 edmx 中)。我有一个方法GetGroup() 并传入一个名称进行搜索。通过代码进行调试,我的数据库中已经有一个名为“Test”的组。一旦我传入一个名为“TEST”的组,我希望它返回已经在数据库中的“Test”。由于某种原因,它没有找到“测试”并认为“测试”不存在。这是我的查询,我看不出它为什么不起作用。请帮忙。
“name”是传入的组名。我的.Equals 似乎只有在gr.Name 和名称完全相同的情况下才有效。如果一个字符在两个字符串之一中是大写的,则 .Equals 不起作用。我曾尝试使用InvariantCultureIgnoreCase,但这似乎没有帮助。如果有人问,MyLeagueId 和 LeagueId 将始终匹配,数据库已设置,因此可以有一个不同联赛 ID 的组。我认为这不是问题。
Group g = (from gr in this.DatabaseConnection.Groups
where gr.Name.Equals(name, StringComparison.OrdinalIgnoreCase) &&
gr.LeagueId == this.MyLeagueId
select gr).FirstOrDefault();
【问题讨论】:
-
你确定一个在结尾/开头没有空格,而另一个没有?
-
如果Groups表不是太大,那么作为一个测试,你能不能尝试把查询从this.DatabaseConnection.Groups.ToList()中的fr改为...
标签: c# linq entity-framework-4 equals