2016-01-13 131 views
0

我想從我的數據庫中使用實體框架在我的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

回答

1

您無法設置「Id」字段的值,因爲它是「身份」字段,並且會自動設置。如果您想重置計數器,則必須截斷表格。

表中的每個插入將使「Id」的值遞增1。

您也可以停用自動字段並手動設置它,但在這裏您應該爲每個查詢獲取最後插入的ID。

我希望,我已經瞭解你的問題矯正。

+0

是的,謝謝我現在正在進行! –