Gibt es eine Möglichkeit, eine Methode in einer Linq-Abfrage zu parametrisieren?

In meiner Anwendung mit Linq to SQL kann der Benutzer nach Text suchen. Ein Sternchen (*) kann am Anfang und / oder Ende des Suchausdrucks verwendet werden. Der Code lautet jetzt:

var search = SearchTextBox.Text.Trim();
bool filterStartsWith = false, filterEndsWith = false;
if (!string.IsNullOrEmpty(search))
{
    filterStartsWith = search.EndsWith("*");
    filterEndsWith = search.StartsWith("*");
    if (filterStartsWith) search = search.Substring(0, search.Length - 1);
    if (filterEndsWith) search = search.Substring(1);

    if (filterStartsWith)
    {
        if (filterEndsWith)
        {
            query = query.Where(item => item.Omschrijving.Contains(search));
        }
        else
        {
            query = query.Where(item => item.Omschrijving.StartsWith(search));
        }
    }
    else
    {
        if (filterEndsWith)
        {
            query = query.Where(item => item.Omschrijving.EndsWith(search));
        }
        else
        {
            query = query.Where(item => item.Omschrijving == search);
        }
    }
}

Ich möchte dies jedoch verallgemeinern, da diese Art der Suche an mehreren Stellen stattfindet. Bei einigen Tabellen sollte dies auch in mehr als einer Spalte geschehen. Irgendwelche Ideen?

Ich verwende Visual Studio 2010 mit .NET Framework 4.0.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage