程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了一个不同的:“SqlParameter 已经被另一个 SqlParameterCollection 包含”问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决一个不同的:“SqlParameter 已经被另一个 SqlParameterCollection 包含”问题?

开发过程中遇到一个不同的:“SqlParameter 已经被另一个 SqlParameterCollection 包含”问题的问题如何解决?下面主要结合日常开发的经验,给出你关于一个不同的:“SqlParameter 已经被另一个 SqlParameterCollection 包含”问题的解决方法建议,希望对你解决一个不同的:“SqlParameter 已经被另一个 SqlParameterCollection 包含”问题有所启发或帮助;

我在 Core 3.1 / EF 6.4.4 应用程序启动时调用以下(EF 工具生成的)代码:

    public async Task<cp_Upsert_scheduledTasksTrackingresult[]> cp_Upsert_scheduledTasksTrackingAsync(int? scheduledTasksTrackingID,String taskname,int? recordsAffected,bool? successResult,datetiR_399_11845@e? processstart,datetiR_399_11845@e? processstop,String resultNote,OutputParameter<int> returnValue = null,CancellationToken cancellationToken = default)
    {
        var parameterreturnValue = new sqlParameter
        {
            Parametername = "returnValue",Direction = System.Data.ParameterDirection.output,sqlDbType = System.Data.sqlDbType.Int,};

        var sqlParameters = new []
        {
            new sqlParameter
            {
                Parametername = "scheduledTasksTrackingID",Value = scheduledTasksTrackingID ?? Convert.dbnull,},new sqlParameter
            {
                Parametername = "taskname",Size = 200,Value = taskname ?? Convert.dbnull,sqlDbType = System.Data.sqlDbType.VarChar,new sqlParameter
            {
                Parametername = "recordsAffected",Value = recordsAffected ?? Convert.dbnull,new sqlParameter
            {
                Parametername = "successResult",Value = successResult ?? Convert.dbnull,sqlDbType = System.Data.sqlDbType.bit,new sqlParameter
            {
                Parametername = "processstart",Value = processstart ?? Convert.dbnull,sqlDbType = System.Data.sqlDbType.datetiR_399_11845@e,new sqlParameter
            {
                Parametername = "processstop",Value = processstop ?? Convert.dbnull,new sqlParameter
            {
                Parametername = "resultNote",Size = -1,Value = resultNote ?? Convert.dbnull,parameterreturnValue,};
        var _ = await _context.sqlqueryAsync<cp_Upsert_scheduledTasksTrackingResult>("EXEC @returnValue = [dbo].[cp_Upsert_scheduledTasksTracking] @scheduledTasksTrackingID,@taskname,@recordsAffected,@successResult,@processstart,@processstop,@resultNote",sqlParameters,cancellationToken);

        returnValue?.SETVALue(parameterreturnValue.value);

        return _;
    }

如您所见,此方法的 sqlParameters 应在本地范围内限定为此方法,因此,此方法是否应该可以毫无问题地调用(或者我认为是这样)。我已经使用此代码成功地进行了数十次测试和(dev、sit 和 stg)部署,但它仅在生产中(在第一次调用时)失败! 我这样称呼它:

_ = _CustomAppsProceduresContext.cp_Upsert_scheduledTasksTrackingAsync(-1​​,_ThisAppname,false,datetiR_399_11845@e.Now,null,null).Result.FirstOrDefault();

有没有更好(更可靠)的方法来做到这一点?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的一个不同的:“SqlParameter 已经被另一个 SqlParameterCollection 包含”问题全部内容,希望文章能够帮你解决一个不同的:“SqlParameter 已经被另一个 SqlParameterCollection 包含”问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。