Entity Framework-Platzhalter und Linq

Ist es möglich, eine gültige Linq-Abfrage zu erstellen, die Platzhalterzeichen enthält?

Ich habe verschiedene Antworten auf diese Frage gesehen, die folgende Vorschläge enthalten:

.Where(entity => entity.Name.Contains("FooBar"))
.Where(entity => entity.Name.EndsWith("Bar")) 
.Where(entity => entity.Name.StartsWith("Foo"))

ODER die Erstellung von RawSql:

var commandText =
    @"SELECT field
    FROM     table
    WHERE    field LIKE @search";

var query = new ObjectQuery<Profile>(commandText, context);
query.Parameters.Add(new ObjectParameter("search", wildcardSearch));

Die erste Lösung würde nicht funktionieren, wenn sich der Platzhalter nicht am Anfang oder Ende einer Zeichenfolge befindet, z. B.searchTerm = "Foo%Bar".

Die zweite Lösung, RawSql, passt nicht zu mir und ist ein billiger Ausweg. Aber es funktioniert.

Die dritte Option, die ich bisher noch nicht ausprobiert habe, besteht darin, etwas zu erstellen, das den Suchbegriff analysieren und eine gültige Linq-Abfrage erstellen kann. @Slauma hat dies in Link 2 unten versucht. Dies würde jedoch immer noch nicht funktionieren, wenn sich der Platzhalter nicht am Anfang oder Ende des Suchbegriffs befindet.

Die Frage: Ist es möglich, eine gültige Linq-Abfrage zu erstellen, die Platzhalterzeichen enthält?

EDIT: Es ist erwähnenswert, dass ich in diesem Fall Oracle Data Access Components (ODAC / ODP) verwende, aber ich denke, dass es in diesem Fall keinen großen Unterschied macht.

Links:

1."Gefällt mir" -Abfragen in Entity Framework

2.Exakte Suche und Platzhaltersuche abhängig vom Suchbegriff

3.Verwenden von RawSql

Antworten auf die Frage(3)

Ihre Antwort auf die Frage