Есть ли способ в LINQ to Entities (SQL) идентифицировать все записи, в которых указанное слово повторяется по крайней мере / меньше указанного числа раз?
Я могу сделать это в памяти, ища как минимум 3 экземпляра слова «слово», используя:
Where(Function(x) x.Description.Split("word").Count > 3)
Однако функция Split () не может преобразоваться в эквивалент SQL, и поэтому она может выполняться только в оперативной памяти, что мучительно медленно, когда задействовано любое количество записей.
SQL для этого будет выглядеть примерно так:
WHERE Description LIKE '%word%word%word%'
И, насколько я понимаю, я не могу понять, как получить этот SQL, сгенерированный LINQ для сущностей. Я попробовал уродливый хакер .Where(Function(x) x.Description.Contains("word%word%word")
в случайном порядке, но я почти рад, что это не работает!