我有一个非常简单的Linq-to-SQL查询,它返回一个布尔值:
using (MyDataContext TheDC = new MyModelDataContext())
{
return !TheDC.SomeTable.Any(l => l.UserID == SomeLong && l.ColumnName == SomeString);
}
问题在于,当比较涉及根据某些字母的情况而不同的字符串时,它返回false。例如,如果表包含testString
而SomeString为TestString
,则返回false。
我怎样才能改写它?
答案 0 :(得分:-1)
你有Equal功能
在你的情况下,它应该是这样的:
using (MyDataContext TheDC = new MyModelDataContext())
{
return !TheDC.SomeTable.Any(l => l.UserID == SomeLong && l.ColumnNameEquals(SomeString, StringComparison.InvariantCultureIgnoreCase));
}
答案 1 :(得分:-4)
您想试试这段代码吗?
using (MyDataContext TheDC = new MyModelDataContext())
{
return !TheDC.SomeTable.Any(l => l.UserID == SomeLong && l.ColumnName.ToLower() == SomeString.ToLower());
}
答案 2 :(得分:-4)
我会尝试,tolower()和好的措施检查db collate。
l.ColumnName.ToLower() == SomeString.ToLower()