Mam listę zawierającą kilka słów kluczowych. I foreach przez nich budowy mój kwerendy LINQ z nich jak tak (sprowadzić do usuwania szumu kierunkowym):Zapytanie Linq wbudowane w pętlę foreach zawsze przyjmuje wartość parametru z ostatniej iteracji
List<string> keys = FillKeys()
foreach (string key in keys){
q = q.Where(c => c.Company.Name.Contains(key));
}
Kiedy teraz uczynić moje klucze zawierają 2 klucze, które zwracają wyniki oddzielnie, ale nigdy nie może wystąpić maksymalnie razem (każda pozycja w q jest albo "xyz" albo "123", nigdy "123" i "xyz"), wciąż otrzymuję wyniki. Zestaw wyników jest taki sam jak ostatni ciąg znaków, do którego dotarł.
Zerknąłem na zapytanie linq i wygląda na to, że tworzy poprawny sql, ale zastępuje @ p1 AND @ p2 zarówno tą samą (ostatnią iterowaną) wartością.
Co robię źle?
możliwe duplikat [C# Zrobione zmiennej w pętli] (http://stackoverflow.com/questions/271440/c-sharp-captured- variable-in-loop) – nawfal