5.9K Star 11.7K Fork 4K

GVPdotNET China / Furion

 / 详情

ISqlDispatchProxy调用带返回值的存储过程出错

已完成
成员
创建于  
2021-04-06 22:46

Furion 版本号

1.18.3


Web 项目类型

  • WebApi
  • Mvc
  • Razor Pages
  • Blazor Server

描述你的问题

使用ISqlDispatchProxy实现的复杂存储过程

    [SqlProcedure("sp_PageView")]
    ProcedureOutputResult<(List<..>, List<...>)> GetReadEmailList(PageViewModel pageViewModel);

调用后报错
"Errors": "Parameter count mismatch.",

1.16.9版本无此问题,升级到最新版本后出现此问题。


异常堆栈信息

输入图片说明


代码或代码仓库


数据库信息

  • Sqlite
  • SqlServer
  • Mysql
  • Oracle
  • PGSql
  • Firebird
  • Cosmos

期待结果

修复bug


评论 (8)

蔡宙航 创建了任务
蔡宙航 关联仓库设置为dotNET China/Furion
展开全部操作日志

这块确实动过。您先不要升级,我明天看看。

好的,多谢,已经回退版本了。

测试案例一,字符串测试正常:

表:

create table Test
(
   Id int primary key identity(1,1) not null,
   Name nvarchar(50) not null
)

存储过程

CREATE PROC PROC_Output
    @Id INT, 
    @Name NVARCHAR(32) OUTPUT,
    @Age INT OUTPUT 
AS
BEGIN
    SET @Name = 'Furion Output';

    SELECT *
    FROM dbo.Test
    WHERE Id > @Id;

    SELECT TOP 10
           *
    FROM dbo.Test;

    SET @Age = 27;

    RETURN 10;
END;

测试代码:

public void 测试复杂存储过程()
        {
            var t = "PROC_Output".SqlProcedureOutput<(List<Test>, List<Test>)>(new ProcOutputModel
            {
                Id = 0
            });
        }




public class Test
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }

    public class ProcOutputModel
    {
        public int Id { get; set; } // 输入参数

        [DbParameter(ParameterDirection.Output, Size = 32)]
        public string Name { get; set; }    // 输出参数

        [DbParameter(ParameterDirection.Output)]
        public int Age { get; set; }    // 输出参数

        [DbParameter(ParameterDirection.ReturnValue)]
        public int ReturnValue { get; set; }    // 返回值
    }
974299 monksoul 1578937227 百小僧 拥有者
回复 百小僧 拥有者

以上字符串方式测试正常。现在准备测试代理方式:

Sql 代理确实测试出问题。

百小僧 任务状态待办的 修改为进行中
百小僧 负责人设置为百小僧
百小僧 添加了
 
漏洞
标签
百小僧 添加了
 
优化
标签
百小僧 添加了
 
优先
标签
百小僧 里程碑设置为Furion 2021
百小僧 关联分支设置为master
百小僧 计划截止日期设置为2021-04-07
百小僧 计划开始日期设置为2021-04-06
百小僧 计划截止日期2021-04-07 修改为2021-04-06
百小僧 置顶等级设置为
百小僧 优先级设置为严重
百小僧 通过 dotnetchina/Furion Commit 3fe7f15任务状态进行中 修改为已完成
百小僧 置顶等级 修改为不置顶

Furion 1.18.4 已经修复。
输入图片说明
输入图片说明

更新最新版即可。

更新最新版本后测试正常

TODO 修改了描述
TODO 关联分支master 修改为未关联

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
974299 monksoul 1578937227
C#
1
https://gitee.com/dotnetchina/Furion.git
git@gitee.com:dotnetchina/Furion.git
dotnetchina
Furion
Furion

搜索帮助