这不是LINQ to Entities中区分大小写的比较:
Thingies.First(t => t.Name == "ThingamaBob");
Run Code Online (Sandbox Code Playgroud)
如何与LINQ to Entities实现区分大小写的比较?
我正在使用LINQ搜索我的一个Entity Framework表,并根据名称找到一个"组".名称是一个字符串,看起来是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();
Run Code Online (Sandbox Code Playgroud) 我想要一个不涉及ToUpper或ToLower的问题的解决方案,正如我在下面的代码中使用的那样;
var upper = term.ToUpper();
using (var db = this.DataContext)
{
return db.Counties.Where(x => x.CountyName.ToUpper().Contains(upper)).ToList();
}
Run Code Online (Sandbox Code Playgroud)
我正在使用有权使用的框架,因此使用的C#解决方案StringComparison.CurrentCultureIgnoreCase不起作用.它的工作Equals,EndsWith和StartsWith,但不是Contains.