Udostępnij za pośrednictwem


Instrukcje: Wywoływanie wbudowanych funkcji zdefiniowanych przez użytkownika

Mimo że można wywoływać wbudowane funkcje zdefiniowane przez użytkownika, funkcje zawarte w zapytaniu, którego wykonanie jest odroczone, nie są wykonywane, dopóki zapytanie nie zostanie wykonane. Aby uzyskać więcej informacji, zobacz Wprowadzenie do zapytań LINQ (C#).

Po wywołaniu tej samej funkcji poza zapytaniem linQ to SQL tworzy proste zapytanie na podstawie wyrażenia wywołania metody. Poniżej znajduje się składnia SQL (parametr @p0 jest powiązany z stałą przekazaną):

SELECT dbo.ReverseCustName(@p0)  

LINQ to SQL tworzy następujące elementy:

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

Przykład

W poniższym zapytaniu LINQ to SQL można zobaczyć wbudowane wywołanie metody funkcji ReverseCustNamezdefiniowanej przez użytkownika. Funkcja nie jest wykonywana natychmiast, ponieważ wykonywanie zapytania jest odroczone. Język SQL utworzony dla tego zapytania przekłada się na wywołanie funkcji zdefiniowanej przez użytkownika w bazie danych (zobacz kod SQL po zapytaniu).

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]  

Zobacz też