Share via


Gewusst wie: Inline-Aufrufen von benutzerdefinierten Funktionen (LINQ to SQL)-

Aktualisiert: November 2007

Obwohl Sie benutzerdefinierte Funktionen inline aufrufen können, werden in einer Abfrage enthaltene Funktionen, deren Ausführung umgeleitet wird, bis zur Ausführung der Abfrage verzögert. Weitere Informationen finden Sie unter Einführung in LINQ-Abfragen.

Wenn Sie die gleiche Funktion außerhalb einer Abfrage ausführen, erstellt LINQ to SQL eine einfache Abfrage aus der call expression-Methode. Folgendes befindet sich in der SQL-Syntax (der @p0-Parameter ist an die übergebene Konstante gebunden):

SELECT dbo.ReverseCustName(@p0)

LINQ to SQL erstellt Folgendes:

Dim str As String = db.ReverseCustName("LINQ to SQL")
string str = db.ReverseCustName("LINQ to SQL");

Beispiel

In der folgenden LINQ to SQL-Abfrage sehen Sie einen Inline-Abruf für die benutzerdefinierte ReverseCustName-Funktionsmethode. Die Funktion wird nicht sofort ausgeführt, da die Abfrageausführung verzögert wird. Die für diese Abfrage erstellte SQL-Anweisung wird in einen Aufruf der benutzerdefinierten Funktion in der Datenbank übersetzt (siehe SQL-Code nach der Abfrage).

Dim custQuery = _
    From cust In db.Customers _
    Select cust.ContactName, Title = _
    db.ReverseCustName(cust.ContactTitle)
var custQuery =
    from cust in db.Customers
    select new {cust.ContactName, Title = 
        db.ReverseCustName(cust.ContactTitle)};
SELECT [t0].[ContactName],
    dbo.ReverseCustName([t0].[ContactTitle]) AS [Title]
FROM [Customers] AS [t0]

Siehe auch

Weitere Ressourcen

Benutzerdefinierte Funktionen (LINQ to SQL)