如何从数据库中删除记录使用实体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); 
     } 
    } 

的感谢!

+0

你的意思是ID列不应该是一个标识列? –

+0

你有什么希望用你提到的这个堆栈概念来实现?创建记录时的时间戳列是否是一种更可靠的方法来实现所需的行为? – pwhelly

您无法设置“Id”字段的值,因为它是“身份”字段,并且会自动设置。如果您想重置计数器,则必须截断表格。

表中的每个插入将使“Id”的值递增1。

您也可以停用自动字段并手动设置它,但在这里您应该为每个查询获取最后插入的ID。

我希望,我已经了解你的问题矫正。

+0

是的,谢谢我现在正在进行! –