LINQ to SQL - wählen Sie, wo Sie text ein string-array
Habe ich eine Liste<string
> der variable count, und ich möchte die Abfrage (per LINQ) eine Tabelle zu finden, alle Elemente, die enthalten jede dieser Zeichenfolgen in der Spalte Text ein.
Versucht, dies (funktioniert nicht):
items = from dbt in database.Items
where (stringList.FindAll(s => dbt.Text.Contains(s)).Count > 0)
select dbt;
Abfrage wäre so etwas wie:
select * from items where text like '%string1%' or text like '%string2%'
Ist das möglich?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lesen Sie diesen Artikel aus, um zu tun, was Sie wollen:
http://www.albahari.com/nutshell/predicatebuilder.aspx
Dies funktioniert wie ein Traum. Ich wesentlichen Ausschneiden und einfügen den code-und habe diese wieder (mit meinen eigenen Daten-Schema natürlich):
Hier ist der code, den ich lief in die proof-of-concept:
Ich würde vorschlagen, gehen Sie zu der Website für den code und die Erklärung.
(Ich verlasse die erste Antwort, weil es gut funktioniert, wenn Sie eine IN-Anweisung)
Art neu für das ganze LINQ to SQL-Spiel, aber ist das syntax-Hilfe?
Habe es von:
http://blog.wekeroad.com/2008/02/27/creating-in-queries-with-linq-to-sql/
Nach der Lektüre dieses post, Suche nach der gleichen Lösung wie du, ich fand eine Lösung mit der
.Any
und.All
Methoden für Linq sind eine schöne einfache und elegante Weg, um passende Ergebnisse für arrays.In diesem Beispiel bin ich mit einer Suche die Eingabe, getrennt durch Kommas, wie ein Beispiel. I don ' T care, wenn das Spiel nicht in die gleiche Falle.
Zuerst einige Daten zur Abfrage von Linq to SQL oder wo auch immer
Mithilfe der lambda-syntax für die schönen festen code, und führen Spiele zu
.Any
string in der Abfrage, um entweder den Namen oder die Beschreibung in der Tabelle.Wenn Sie wollen nur Ergebnisse, wo alle Saiten aufeinander abgestimmt sind und innerhalb jedes Feld, das Sie ersetzen kann
.Any
mit.All
:Mit:
Suchfunktion: