Entity Framework v4.1 wie

8

Wie muss ich meine Abfrage erstellen, um eine Ausgabe-SQL-Abfrage wie folgt zu erhalten:

%Vor%

ODER

%Vor%

ODER

%Vor%

Ich benutze .Net Framework 4.0, Entity Framework v4.1 und C #.

EF v4.1 konvertiert diesen Typ von linq-Abfragen von:

%Vor%

In:

%Vor%

Das will ich nicht. Ich möchte in der Lage sein, das "Prozent" -Symbol zu verwenden, wie ich direkt in DB tun.

    
Gil 01.06.2011, 13:35
quelle

3 Antworten

7

Sie müssen ESQL verwenden, wenn Sie vollständige Wildcard-Unterstützung wünschen. Linq-to-Entities ist nicht in der Lage, dies zu tun, und EFv4.1-Code zuerst (ohne EDMX) unterstützt keine modelldefinierten Funktionen , sodass die von @Johann Blais zur Verfügung gestellte Lösung nicht verwendet werden kann.

Ich denke, der Code zum Ausführen der ESQL-Abfrage kann folgendermaßen aussehen:

%Vor%     
Ladislav Mrnka 01.06.2011 13:56
quelle
4

Wenn Sie SQL Server verwenden, verwenden Sie die Funktion PATINDEX , um ein Muster zu erstellen Suche. Sie können auf diese Funktion über EF zugreifen, indem Sie SqlFunctions verwenden Klasse.

Zum Beispiel die folgende EF-Abfrage

%Vor%

wird in

übersetzt %Vor%     
Jeff Ogata 03.11.2011 18:49
quelle
1
%Vor%     
Pieter Germishuys 01.06.2011 13:40
quelle