Delen via


Procedure: Door de gebruiker gedefinieerde scalaire functies gebruiken

U kunt een clientmethode die in een klasse is gedefinieerd toewijzen aan een door de gebruiker gedefinieerde functie met behulp van het FunctionAttribute kenmerk. Houd er rekening mee dat de hoofdtekst van de methode een expressie maakt die de intentie van de methodeaanroep vastlegt en die expressie doorgeeft aan de DataContext expressie voor vertaling en uitvoering.

Notitie

Directe uitvoering vindt alleen plaats als de functie buiten een query wordt aangeroepen. Zie Procedure voor meer informatie : Door de gebruiker gedefinieerde functies inline aanroepen.

Opmerking

De volgende SQL-code bevat een door de gebruiker gedefinieerde functie ReverseCustName()met scalaire waarden.

CREATE FUNCTION ReverseCustName(@string varchar(100))  
RETURNS varchar(100)  
AS  
BEGIN  
    DECLARE @custName varchar(100)  
    -- Implementation left as exercise for users.  
    RETURN @custName  
END  

U wijst een clientmethode toe, zoals de volgende voor deze code:

[Function(Name = "dbo.ReverseCustName", IsComposable = true)]
[return: Parameter(DbType = "VarChar(100)")]
public string ReverseCustName([Parameter(Name = "string",
    DbType = "VarChar(100)")] string @string)
{
    return ((string)(this.ExecuteMethodCall(this,
        ((MethodInfo)(MethodInfo.GetCurrentMethod())),
        @string).ReturnValue));
}
<FunctionAttribute(Name:="dbo.ReverseCustName", _
IsComposable:=True)> _
Public Function ReverseCustName(<Parameter(Name:="string", _
DbType:="VarChar(100)")> ByVal [string] As String) As _
<Parameter(DbType:="VarChar(100)")> String
    Return CType(Me.ExecuteMethodCall(Me, _
        CType(MethodInfo.GetCurrentMethod, MethodInfo), _
        [string]).ReturnValue, String)
End Function

Zie ook