考虑包含以下数据的数据库:
id title
1 cooking assembler
2 time assembler
3 time disassembler
4 time assembly
5 cooking assembly
如果我在工作室经理的sql中输入
select id from titles where contains(title, 'assembler')
我得到1和2 - 很棒 如果我这样做查询
select id from titles where contains(title, 'disassembler')
我得到3 - perf 这正是我想要的
但现在我跳到c#
写下这个:
dbcontext.titles_data.where(t=>t.Contains('assembler')
给了我1,2和3 - 不是我想要的 我想要的sql的c#等价物是什么?
答案 0 :(得分:0)
这个怎么样:
var searchPattern = new Regex(@"\b(assembler)\b", RegexOptions.IgnoreCase);
var Result = test.Where(i => searchPattern.IsMatch(i));
答案 1 :(得分:0)
感谢@aliriza
我在这篇文章中应用了解决方案:
Search for whole word with Linq to SQL
代码现在看起来像:
string t = "parrothead";
List<titles> tData = db.titles_data.Where(
o=> o.title.Contains(" " + t + " ") ||
o.title.StartsWith(t + " ") ||
o.title.EndsWith(" "+ t)).ToList();