使用SQLFunction按多个字符串搜索.与EF的区别

本文关键字:EF 区别 搜索 字符串 SQLFunction 使用 | 更新日期: 2023-09-27 18:06:16

当输入是单个字符串

时效果很好

在这个例子中"Lorem ipsum"

dbContext.NewsArticles.Where(article => SQLFunction.Difference(article.Text, "Lorem ipsum") == 3).ToArray()

如何通过多个字符串进行搜索?换句话说,输入是字符串[]或List

var input = new List<string>{
 "Lorem ipsum dolor",
 "elementum lacinia",
 "cursus nulla molestie",
}

这可能吗?

使用SQLFunction按多个字符串搜索.与EF的区别

您应该能够将该列表用于Any

dbContext.NewsArticles
    .Where(article => input.Any(x => SQLFunction.Difference(article.Text, x) == 3))
    .ToArray();

取决于表的大小和文本列的数据类型/大小。当查询计划导致并行查询时,按日期对表进行分区(如果这是一个选项并且取决于数据分布)可能会提供积极的结果。