查找重复单词的值

Ric*_*001 2 c# linq vb.net linq-to-entities linq-to-sql

在LINQ to Entities(SQL)中是否有一种方法可以识别指定字重复至少/少于指定次数的所有记录?

我可以在内存中执行此操作,使用以下内容查找"word"一词的至少3个实例:

Where(Function(x) x.Description.Split("word").Count > 3)
Run Code Online (Sandbox Code Playgroud)

但是,Split()函数无法转换为SQL等效函数,因此只能在内存中执行,这在涉及任意数量的记录时会非常慢.

执行此操作的SQL将是类似的

WHERE Description LIKE '%word%word%word%'
Run Code Online (Sandbox Code Playgroud)

这就是我得到的 - 我无法弄清楚如何将LINQ生成的SQL生成实体.我尝试了这个丑陋的黑客.Where(Function(x) x.Description.Contains("word%word%word")机会,但我几乎松了一口气,它不起作用!

Mag*_*nus 5

LINQ2SQL

.Where (c => SqlMethods.Like(c.name, "word%word%word"));
Run Code Online (Sandbox Code Playgroud)

Linq2Entities
请参阅:http://jendaperl.blogspot.com/2011/02/like-in-linq-to-entities.html
http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/6529a35b-6629-44fb-8ea4-3a44d232d6b9 /

.Where("it.Name LIKE @searchTerm", 
    new ObjectParameter("searchTerm", "word%word%word")); 
Run Code Online (Sandbox Code Playgroud)