在foreach内部重复LINQ到SQL



我正在使用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;
}

最新更新