1

引数を指定してストアド プロシージャを呼び出す関数を作成していIDictionaryます。

[Function(Name = "dbo.GetTrackingInfo")]
[ResultType(typeof(Shipment))]
[ResultType(typeof(Piece))]
[ResultType(typeof(Item))]
public IMultipleResults GetTrackingInfo(IDictionary<string, object> arguments)
{
    var method = (MethodInfo)MethodInfo.GetCurrentMethod();

    var argumentsArr = this.Mapping.GetFunction(method).Parameters
        .Select(p => arguments.ContainsKey(p.Name)
            ? NullableExtensions.Convert(arguments[p.Name], p.ParameterType)
            : null)
        .ToArray();

    return (IMultipleResults)this.ExecuteMethodCall(this, method, argumentsArr);
}

Mapping.GetFunction(method).ParametersSP のパラメーターを返すことを期待していましたが、代わりにこのメソッドのパラメーターを返しました。基になる SP のパラメーターを取得する簡単な方法はありますか?

4

1 に答える 1

3

このNameプロパティは (ご存じのとおり) CLR 空間で関数の名前を返します。

使用したいのは、次のように定義されたMappedNameプロパティです(強調鉱山):

データベース関数のパラメーターの名前を取得します。

クラスのParametersプロパティを呼び出すと、基になる SP のパラメーターに関する情報が返されることに注意してください。これはマッピングであるため、同じインスタンスに関連付けられた SP 情報と CLR 表現に関する情報の両方が含まれています。MetaFunction MetaParameter

于 2012-10-23T18:07:27.033 に答える