如何从数据库中删除记录使用实体WebApi
问题描述:
我想从我的数据库中使用实体框架在我的WebApi项目中删除一行,但每次我试图删除我成功,但ID仍然算! 例如:比方说,我有5行,我删除了5行的所有,如果我做了一个POST,它将被计算在6,7,8 ...我想使用堆栈的概念,如果我删除第一行5第二行必须是第一个......如何从数据库中删除记录使用实体WebApi
我简单的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);
}
}
的感谢!
答
您无法设置“Id”字段的值,因为它是“身份”字段,并且会自动设置。如果您想重置计数器,则必须截断表格。
表中的每个插入将使“Id”的值递增1。
您也可以停用自动字段并手动设置它,但在这里您应该为每个查询获取最后插入的ID。
我希望,我已经了解你的问题矫正。
+0
是的,谢谢我现在正在进行! –
你的意思是ID列不应该是一个标识列? –
你有什么希望用你提到的这个堆栈概念来实现?创建记录时的时间戳列是否是一种更可靠的方法来实现所需的行为? – pwhelly