2012-10-04 6 views
1

인수가 IDictionary 인 저장 프로 시저를 호출하는 함수를 작성하고 있습니다. SP 매개 변수 목록 가져 오기

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

본인은 SP의 매개 변수를 반환하는 Mapping.GetFunction(method).Parameters을 기대하지만, 대신이 방법의 매개 변수를 반환했습니다. 기본 SP의 매개 변수를 가져 오는 간단한 방법이 있습니까?

답변

3

Name property (알고 계시 겠지만)은 CLR 공간에서 함수의 이름을 반환합니다.

데이터베이스 기능의 매개 변수의 이름을 가져옵니다 :

은 당신이 사용하고자하는 (강조 광산)으로 정의의 MappedName property입니다.

참고 MetaFunction classParameters property에 대한 호출이 기본 SP의 매개 변수에 대한 정보를 반환한다는 것을; 매핑이므로 SP 정보와 CLR 표현에 대한 정보가 동일하고 MetaParameter 인스턴스와 연결되어 있습니다.

관련 문제