我正在使用LINQ到SQL上(快速而肮脏的)搜索引擎。我已经有一个字符串表,其中包含我想在每个条目的描述中搜索的每个单词。
在我的linq到SQL过程的末尾,我应该仅获取包含 ash all 的条目。这是我到目前为止的代码( M1 是我的字符串表):
var myUser = from u in dataBase.Profiles
where u.Status == 2 // some primary selection
select u;
foreach (string word in m1)
{
myUser = from u in myUser
where ((word != "") ? u.Description.Contains(word) : 1 == 1)
select u;
}
myUser = from u in myUser
orderby u.ModificationDate descending // finally, we order the list
select u;
此代码效果很好,但是可悲的是,它并未选择包含两个单词的条目,而是所有包含的条目至少一个字。
。你能理解为什么吗?我不:/
您正在关闭循环变量。
关闭变量,而不是超过值。
尝试将字符串分配给本地变量:
foreach (string word2 in m1)
{
string word = word2;
myUser = from u in myUser
where ((word != "") ? u.Description.Contains(word) : 1 == 1)
select u;
}