Delen via


Procedure: Door de gebruiker gedefinieerde functies inline aanroepen

Hoewel u door de gebruiker gedefinieerde functies inline kunt aanroepen, worden functies die zijn opgenomen in een query waarvan de uitvoering wordt uitgesteld, pas uitgevoerd nadat de query is uitgevoerd. Zie Inleiding tot LINQ-query's (C#) voor meer informatie.

Wanneer u dezelfde functie buiten een query aanroept, maakt LINQ naar SQL een eenvoudige query op basis van de aanroepexpressie van de methode. Hier volgt de SQL-syntaxis (de parameter @p0 is gebonden aan de constante die wordt doorgegeven):

SELECT dbo.ReverseCustName(@p0)  

LINQ naar SQL maakt het volgende:

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

Opmerking

In de volgende LINQ naar SQL-query ziet u een inlineaanroep naar de gegenereerde door de gebruiker gedefinieerde functiemethode ReverseCustName. De functie wordt niet onmiddellijk uitgevoerd omdat de uitvoering van query's wordt uitgesteld. De SQL die voor deze query is gebouwd, wordt omgezet in een aanroep naar de door de gebruiker gedefinieerde functie in de database (zie de SQL-code na de query).

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

Zie ook