【问题标题】:SqlCommandProvider failing to call stored procedure with table-valued parameterSqlCommandProvider 无法使用表值参数调用存储过程
【发布时间】:2019-04-28 19:02:47
【问题描述】:

我在 F# 项目中使用 .NET 框架 4.6.1。在早期版本中,我可以使用 SqlCommandProvider 来调用存储过程(它接受表值参数)。但是最近它显示错误:

System.Reflection.TargetInvocationException:调用的目标已抛出异常。

System.InvalidCastException:无法将“System.Object[]”类型的对象转换为“Microsoft.SqlServer.Server.SqlDataRecord”类型。

在 System.Linq.Enumerable.d__97`1.MoveNext()

代码没有改变,只是.NET版本或F#运行时版本。我想,该方法无法将我的表值参数转换为所需的 SQL 类型。我也试过SqlProgrammabilityProvider,但没有成功。

有什么建议吗?

【问题讨论】:

    标签: .net tsql stored-procedures f# table-valued-parameters


    【解决方案1】:

    这是FSharp.Data.SqlClient 的多个版本。一个项目正在使用 1.8.2,而具有相同解决方案的新项目正在使用 1.8.6。我强迫两者都是 1.8.2

    但是错误信息很奇怪。

    【讨论】:

    • 您可能会更改问题以反映错误而不是您尝试执行的操作,因为它是具有表值参数的存储过程这一事实不相关
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多