.Any()在涉及信件案件时没有按预期工作

时间:2018-03-13 15:27:09

标签: c# linq linq-to-sql

我有一个非常简单的Linq-to-SQL查询,它返回一个布尔值:

using (MyDataContext TheDC = new MyModelDataContext())
{
    return !TheDC.SomeTable.Any(l => l.UserID == SomeLong && l.ColumnName == SomeString);
}

问题在于,当比较涉及根据某些字母的情况而不同的字符串时,它返回false。例如,如果表包含testString而SomeString为TestString,则返回false。

我怎样才能改写它?

3 个答案:

答案 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 collat​​e。

l.ColumnName.ToLower() == SomeString.ToLower()