You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过ExecuteSqlRaw调用存储过程时Postman返回空参数的问题排查

问题排查与修复方案

1. Postman请求字段与实体类字段不匹配

你Postman里传的是Category_Code、Category_Name带下划线的key,从返回的响应体字段名(小驼峰categoryCode、categoryName)可以判断,你的Category实体类属性是无下划线的驼峰命名,参数绑定时找不到对应字段,所以接口拿到的category实体除默认值外全为null。

修复:将Postman请求体改成和实体类属性名匹配的格式:

{
  "categoryCode":"130",
  "categoryName":"Kids"
}

如果实体类属性是大驼峰CategoryCode、CategoryName,对应传大驼峰的key即可。

2. 存储过程逻辑错误

存储过程插入数据时用newid()生成了新的Category_Id,但最后查询的是传入的参数@Category_Id,你传入的category.CategoryId本身就是默认空Guid(全0),新插入数据的Id是随机生成的,所以这条查询永远查不到刚插入的数据。

修复:修改存储过程,把生成的新Id存到变量后再查询返回:

ALTER PROCEDURE [dbo].[CatinsertSP] 
    @Category_Code nvarchar(20),
    @Category_Name nvarchar(167),
    @About_Category nvarchar(max),
    @Parent_Category_Id uniqueidentifier,
    @Is_Enable bit,
    @Is_Active bit,
    @Is_Block bit
AS
BEGIN
    SET NOCOUNT ON;
    -- 声明变量存储新生成的主键Id
    DECLARE @NewCategoryId uniqueidentifier = NEWID()
    insert into [dbo].[Category] (Category_Id,Category_Code,Category_Name,About_Category,Parent_Category_Id,Is_Enable,Is_Active,Is_Block) 
    values(@NewCategoryId,@Category_Code,@Category_Name,@About_Category,@Parent_Category_Id,@Is_Enable,@Is_Active,@Is_Block)
    -- 查询刚插入的完整数据
    select * from Category where Category_Id=@NewCategoryId
END
Go

同时删掉存储过程中无用的@Category_Id输入参数。

3. Service层调用方法错误

ExecuteSqlRaw()只会返回受影响的行数,不会读取存储过程返回的查询结果,你现在直接返回的是前端传进来的category对象,没有拿到数据库插入后返回的完整数据。

修复:用FromSqlRaw读取存储过程返回的结果,修改Service层代码:

public Category AddCategory(Category category)
{
    // 存储过程已删掉第一个@Category_Id参数,对应调整参数顺序
    var insertedCategory = db.Categories.FromSqlRaw("[dbo].[CatinsertSP] {0},{1},{2},{3},{4},{5},{6}", 
        category.CategoryCode, 
        category.CategoryName, 
        category.AboutCategory, 
        category.ParentCategoryId, 
        category.IsEnable, 
        category.IsActive, 
        category.IsBlock)
        .AsEnumerable()
        .FirstOrDefault();
    return insertedCategory ?? category;
}

如果你的DbContext中没有DbSet<Category> Categories的定义,需要先补充该配置。

内容的提问来源于stack exchange,提问作者Cse Engineer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:24:03