我在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中使用此存储过程。
我需要插入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时输出以下信息。
答案 0 :(得分:0)
确保要插入的表已配置为标识/自动递增。
这可以解释为什么主键[person_id]没有增加。您可以通过手动插入进行测试...,看看是否已自动填充person_id。