我试图在我的WebApi项目中使用Entity Framework从我的数据库中删除一行,但每次我试图删除我都成功但ID仍然有效! 例如:让我说我有5行,我删除所有5行,如果我进行POST,它将计入6,7,8 ......如果我擦除,我想使用堆栈的概念第二行的第一行必须是第一行...
我的简单SQL SERVER脚本:
create table Usuário
(
Id int not null identity,
Name varchar(200) not null,
Email varchar(200) not null,
Telefone varchar(200) not null
Constraint Pk_Client Primary Key(Id)
)
API方法:
[Route("delete")]
public HttpResponseMessage Delete(int id)
{
try
{
Usuario usuario = data.Usuario.Where(x => x.Id == id).SingleOrDefault();
data.Usuario.Remove(usuario);
data.SaveChanges();
return Request.CreateResponse(HttpStatusCode.OK, "Sucesso");
}
catch (Exception ex)
{
return Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message);
}
}
谢谢!
答案 0 :(得分:0)
您无法设置“Id”字段的值,因为它是“身份”字段并将自动设置。如果要重置计数器,则必须截断表。
表中的每个插入都会将“Id”的值递增1。
您也可以取消激活自动字段并手动设置,但在这里您应该为每个查询获取最后插入的ID。
我希望,我已经理解了你的问题。