我有一个名为SearchData的表,其中包含'title'和'description'列。
表名:SearchData
列:ID TITLE URL DESCRIPTION
用户搜索字符串,例如“技术协助”。
查询应通过搜索带有“技术”和“帮助”字样的标题和说明来返回所有行。
例如,如果描述中包含“我们提供技术和专业帮助”的文本,则应选择该行。
您能否在实体框架中建议最好的方法?我无法进行通配符搜索
TIA
答案 0 :(得分:0)
如果你正在寻找包含所有单词的记录,你可以连接Where子句(如果你需要或者有点棘手)。
var myQuery = context.SearchData;
foreach (string word in words)
myQuery = myQuery.Where(s => s.URL.Contains(word) || s.DESCRIPTION.Contains(word));
var results = myQuery.ToList();
修改强>
如果您需要搜索网址中的所有字词 或 说明中的所有字词,您可以使用此
var myQuery1 = context.SearchData;
foreach (string word in words)
myQuery1 = myQuery1.Where(s => s.URL.Contains(word));
var myQuery2 = context.SearchData;
foreach (string word in words)
myQuery2 = myQuery2.Where(s => s.DESCRIPTION.Contains(word));
var results = myQuery1.Union(myQuery2).ToList();