Dela via


Anvisningar: Anropa användardefinierade funktioner infogade

Även om du kan anropa användardefinierade funktioner infogade körs inte funktioner som ingår i en fråga vars körning skjuts upp förrän frågan körs. Mer information finns i Introduktion till LINQ-frågor (C#).

När du anropar samma funktion utanför en fråga skapar LINQ till SQL en enkel fråga från metodens anropsuttryck. Följande är SQL-syntaxen (parametern @p0 är bunden till konstanten som skickas in):

SELECT dbo.ReverseCustName(@p0)  

LINQ till SQL skapar följande:

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

Exempel

I följande LINQ till SQL-fråga kan du se ett infogat anrop till den genererade användardefinierade funktionsmetoden ReverseCustName. Funktionen körs inte omedelbart eftersom frågekörningen skjuts upp. DEN SQL som skapats för den här frågan översätts till ett anrop till den användardefinierade funktionen i databasen (se SQL-koden efter frågan).

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]  

Se även