【问题标题】:Get list of SP parameters获取 SP 参数列表
【发布时间】:2012-10-04 15:40:22
【问题描述】:

我正在编写一个函数来调用给定 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).Parameters 会返回SP 的参数,但它却返回了此方法的参数。有没有简单的方法获取底层SP的参数?

【问题讨论】:

    标签: c# .net linq-to-sql stored-procedures parameters


    【解决方案1】:

    Name property(如您所见)返回 CLR 空间中的函数名称。

    您要使用的是MappedName property,定义为(强调我的):

    获取数据库函数中参数的名称

    请注意,对MetaFunction class 上的Parameters property 的调用确实返回有关底层SP 参数的信息;它是一个映射,因此它既有 SP 信息,也有关于 CLR 表示的信息,与同一个 MetaParameter 实例相关联。

    【讨论】:

      猜你喜欢
      • 2020-03-26
      • 1970-01-01
      • 2021-01-30
      • 1970-01-01
      • 2011-03-07
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 2012-03-19
      相关资源
      最近更新 更多