次の方法で共有


方法 : スカラー値のユーザー定義関数を使用する (LINQ to SQL)

FunctionAttribute 属性を使用することによって、クラスで定義されているクライアント メソッドを、ユーザー定義関数に対応付けることができます。 メソッドの本体は、メソッド呼び出しの目的を反映する式を構築し、変換および実行のためにその式を DataContext に渡します。

メモメモ

直接実行は、関数がクエリの外部で呼び出される場合のみ発生します。詳細については、「方法 : ユーザー定義関数をインラインで呼び出す (LINQ to SQL)」を参照してください。

使用例

次の 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

このコードで、次のようなクライアント メソッドを対応付けます。

<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
[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));
}

参照

その他の技術情報

ユーザー定義関数 (LINQ to SQL)