다음을 통해 공유


방법: 스칼라 반환 사용자 정의 함수 사용

FunctionAttribute 특성을 사용하여 클래스에 정의된 클라이언트 메서드를 사용자 정의 함수에 매핑할 수 있습니다. 메서드 본문에서는 메서드 호출 목적을 캡처하는 식을 생성하여 해당 식을 변환 및 실행을 위해 DataContext로 전달합니다.

참고 항목

함수를 쿼리 외부에서 호출한 경우에만 직접 실행됩니다. 자세한 내용은 방법: 인라인으로 사용자 정의 함수 호출을 참조하세요.

예시

다음 SQL 코드에서는 스칼라 반환 사용자 정의 함수인 ReverseCustName()을 나타냅니다.

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

사용자는 이 코드에 대해 다음과 같은 클라이언트 메서드를 매핑할 수 있습니다.

[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

참고 항목