我想在linq to sql中使用类似类型运算符,我使用了contains方法来实现它,但是它区分大小写,请教我一些建议。
contains方法区分大小写,但我希望查询不区分大小写。我也尝试使用IndexOf()
方法,但是它给出了异常。
public static List<string> GetDecodedStaticMsg(string filterMsg)
{
try
{
var q1 = (from decodemsg in Em.StaticMessages
where decodemsg.Message.Contains(filterMsg)
select
decodemsg.MessageId
).ToList();
return q1;
}
catch (Exception)
{
return null;
}
}
答案 0 :(得分:1)
您可以使用CompareInfo
class中的CultureInfo
成员,试试看:
public static List<string> GetDecodedStaticMsg(string filterMsg)
{
try
{
var q1 = (from decodemsg in Em.StaticMessages
where culture.CompareInfo.IndexOf(decodemsg.Message, filterMsg, CompareOptions.IgnoreCase) >= 0
select
decodemsg.MessageId
).ToList();
return q1;
}
catch (Exception)
{
return null;
}
}
答案 1 :(得分:0)
我们可以使用SqlMethods.Like进行不区分大小写的搜索
public static List<string> GetDecodedStaticMsg(string filterMsg)
{
try
{
var q1 = (from decodemsg in Em.StaticMessages
where SqlMethods.Like(decodemsg.Message, $"%{filterMsg}%") //Changes here
select
decodemsg.MessageId
).ToList();
return q1;
}
catch (Exception)
{
return null;
}
}