Partilhar via


Como: Chamar funções definidas pelo usuário em linha

Embora você possa chamar funções definidas pelo usuário embutidas, as funções incluídas em uma consulta cuja execução é adiada não são executadas até que a consulta seja executada. Para obter mais informações, consulte Introdução às consultas LINQ (C#).

Quando você chama a mesma função fora de uma consulta, o LINQ to SQL cria uma consulta simples a partir da expressão de chamada de método. A sintaxe SQL é a seguir (o parâmetro @p0 está vinculado à constante passada):

SELECT dbo.ReverseCustName(@p0)  

O LINQ to SQL cria o seguinte:

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

Exemplo

Na consulta LINQ to SQL a seguir, você pode ver uma chamada embutida para o método ReverseCustNamede função definido pelo usuário gerado. A função não é executada imediatamente porque a execução da consulta é adiada. O SQL criado para essa consulta se traduz em uma chamada para a função definida pelo usuário no banco de dados (consulte o código SQL após a consulta).

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]  

Consulte também