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