Исходя из сообщения об ошибке, я предполагаю, что LINQ to SQL не может перевести раздел RegEx операторов LINQ, поскольку SQLServer не поддерживает RegEx.
Вам нужно будет:
- Получить статьи из базы данных в разделе «Содержит» вашего оператора where.
- Преобразуйте результаты в список.
- Примените ваше регулярное выражение к точке в списке.
Например:
Help helpDBSession = new Help();
IEnumerable<Article> articles = null;
if (lang.ToLower() == "en")
{
articles = helpDBSession.Articles.Where(
artilce => artilce.NameEn.Contains(searchPattern)
)
}
else
{
articles = helpDBSession.Articles.Where(
artilce => artilce.NameAr.Contains(searchPattern)
)
}
if (articles != null && articles.Count() > 0)
{
if (lang.ToLower() == "en")
{
return articles.ToList().Where(
artilce => System.Text.RegularExpressions.Regex.Replace(
artilce.ContentEn,
"<(.|\n)*?>",String.Empty).Contains(searchPattern)
)
);
}
else
{
return articles.ToList().Where(
artilce => System.Text.RegularExpressions.Regex.Replace(
artilce.ContentAr,
"<(.|\n)*?>",String.Empty).Contains(searchPattern)
)
);
}
}