У меня есть хранимая процедура в SQL Server, которая выглядит следующим образом:
ALTER PROCEDURE [dbo].[spInsPer]
(
@person_fname VARCHAR(50),
@person_lname VARCHAR(50),
@person_initials VARCHAR(50),
@person_mono VARCHAR(15),
@person_pemail VARCHAR(50),
@status INT
)
AS
SET NOCOUNT OFF;
INSERT INTO [tbl_person] ([person_fname], [person_lname], [person_initials], [person_mono], [person_pemail], [status])
VALUES (@person_fname, @person_lname, @person_initials, @person_mono, @person_pemail, @status);
SELECT
person_id, person_fname, person_lname, person_initials, person_mono,
person_pemail, status
FROM
tbl_person
WHERE
(person_id = SCOPE_IDENTITY())
Я использую эту хранимую процедуру в ASP.NET Web API с Entity Framework.
Мне нужно получить вставленный person_id
, но он всегда возвращает 0.
Как только я получу person_id
, я хочу выполнить другое действие, основанное на этом. Но не получить результат.
Вот мой код ASP.NET
public HttpResponseMessage PostPer([FromBody] tbl_person Per)
{
using (var context = new Entities())
{
var response = context.spInsPer(Per.person_fname, Per.person_lname, Per.person_initials, Per.person_mono, Per.person_pemail, Per.status);
var message = Request.CreateResponse(HttpStatusCode.Created, Per);
message.Headers.Location = new Uri(Request.RequestUri + response.ToString());
return message;
}
}
Приведенный ниже вывод выводится при выполнении SP.