Wie Operator im Entity Framework?

.net entity-framework linq-to-entities sql-server

Frage

Wir versuchen, den Entsprechungsoperator "LIKE" in Entity Framework für unsere Entitäten mit String-Feldern zu implementieren, es scheint jedoch nicht unterstützt zu werden. Hat jemand anderes versucht, so etwas zu tun?

Dieser Blogbeitrag fasst das Problem zusammen, das wir haben. Wir könnten enthalten verwenden, aber das trifft nur auf den trivialsten Fall für LIKE zu. Das Kombinieren von enthält, startswith, endswith und indexof bringt uns dorthin, erfordert jedoch eine Übersetzung zwischen Standard-Wildcards und Linq to Entities-Code.

Akzeptierte Antwort

Dies ist jetzt ein alter Beitrag, aber für jeden, der nach einer Antwort sucht, sollte dieser Link helfen.

Kurze Version:

SqlFunctions.PatIndex- Methode - Gibt die Startposition des ersten Vorkommens eines Musters in einem angegebenen Ausdruck zurück oder Nullen, wenn das Muster nicht gefunden wird, für alle gültigen Text- und Zeichendatentypen

Namespace: System.Data.Objects.SqlClient Assembly: System.Data.Entity (in System.Data.Entity.dll)

Eine kleine Erklärung erscheint auch in diesem Forumsthread .


Beliebte Antwort

Ich kenne eigentlich nichts über EF, aber in LINQ to SQL formulieren Sie normalerweise eine LIKE-Klausel mit String.Contains:

where entity.Name.Contains("xyz")

wird übersetzt in

WHERE Name LIKE '%xyz%'

(Verwenden Sie StartsWith und EndsWith für anderes Verhalten.)

Ich bin nicht ganz sicher, ob das hilfreich ist, denn ich verstehe nicht, was Sie meinen, wenn Sie sagen, Sie versuchen, LIKE zu implementieren . Wenn ich mich völlig falsch verstanden habe, lass es mich wissen und ich lösche diese Antwort :)



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum