【发布时间】:2016-09-28 20:38:19
【问题描述】:
我有一个这样检索的字符串列表:
List<string> keyWords = db.MotCleRecherche.Select(t => t.MotClé).ToList();
我还有一个需要执行许多参数的查询:
object = db.DAapp.Where(t => t.CODE_ART.StartsWith(s) && t.DATE_CREAT >= debut && t.DATE_CREAT < fin).ToList()
现在...我想添加这种条件:
db.DAapp.Where(t => t.DESC_ART.ToLower().Contains(keywords.ToLower()))
或
db.DAapp.Where(t => t.DESC_ART.ToLower().Intersect(keywords.ToLower()))
我猜你可能会看到它的到来......我不知道如何真正完成这项工作......我所知道的只是考虑一个 X 提交的列表和 Y 的列表填充:
X.Intersect(Y).Any()
如果有相等的东西,将返回真......但 DESC_ART 只是一个长字符串,我想知道我的一些关键字是否在那里
【问题讨论】:
-
你可能可以这样做:
db.DAapp.Where(t => keyWords.Contains(t.DESC_ART.ToLower())...你会想ToLower()你的整个关键字首先db.MotCleRechercher.Select(t => t.MotCle.ToLower()).ToList() -
@stephen.vakil 关键字列表从一开始就放低是一件好事,谢谢,但是关键字不可能包含 desc_art,desc_art 就像 500 辆汽车一样长,而我的大多数关键字都有 5或 6 个字母...
-
我明白了 - 您想搜索包含任何指定关键字的任何
DESC_ART吗?所以像t => keyWords.Any(k => t.DESC_ART.Contains(k))? -
我工作!!!太棒了!
标签: c# entity-framework