这是我的帖子:
public IActionResult PostEstacion([FromBody]PostEstacionDTO postEstacionDTO) {
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var EntidadID = _context.Empresa.Where(x => x.EntidadID == postEstacionDTO.EntidadID).Select(x => x.EntidadID).FirstOrDefault();
var NumeroEstacion = _context.Estacion.Where(x => x.NumeroEstacion == postEstacionDTO.NumeroEstacion).Select(x => x.NumeroEstacion).FirstOrDefault();
var Clave = _context.Estacion.Where(x => x.Clave == postEstacionDTO.Clave).Select(x => x.Clave).FirstOrDefault();
var TarID = _context.Estacion.Where(x => x.TarID == postEstacionDTO.TarID).Select(x => x.TarID).FirstOrDefault();
var postEstacion = _context.LoadStoredProc("PostEmpresaEstacion")
.WithSqlParam("p0", EntidadID)
.WithSqlParam("p2", NumeroEstacion)
.WithSqlParam("p3", Clave)
.WithSqlParam("p4", TarID)
.ExecuteStoredProc<PostEstacionDTO>();
return Created();
}
我使用一个类从SQL Server执行SP,在另一个Post请求中它可以工作,但这里不是。
例如,如果我调试:
这是我的SP:
[dbo].[PostEmpresaEstacion]
@p0 int,
@p2 varchar (max),
@p3 varchar (max),
@p4 int
as
begin
insert into Empresa(EntidadID) values (@p0)
SELECT P1 = SCOPE_IDENTITY()
insert into Estacion(EmpresaID, NumeroEstacion, Clave, TarID) values (SCOPE_IDENTITY(), @p2, @p3, @p4)
end
这是我的Postman POST请求
最后我的SP查询:
declare @p0 int,
@p2 varchar (max),
@p3 varchar (max),
@p4 int
set @p0 = 1
set @p2 = 'ZXSQ12'
set @p3 = 'OPIIU7'
set @p4 = 1
begin
insert into Empresa(EntidadID) values (@p0)
SELECT P1 = SCOPE_IDENTITY()
insert into Estacion(EmpresaID, NumeroEstacion, Clave, TarID) values (SCOPE_IDENTITY(), @p2, @p3, @p4)
end
正如我所说,它在Sql Server中运行良好。
当我在Visual Studio中调试时:
只有“NumeroEstacion”和“Clave”为空,我不知道为什么,如果我将变量声明为其他变量。
我将非常感谢您的帮助