2014-03-19 51 views
0
   Hi all, 

環境:VS表示2013年網絡,項目模板:熱毛巾的角度(1.2),實體框架ADO .NET 6時,SQL Server 2012,Breeze.WebApi2,Breeze.ContextProvider。 EF6。微風的Web API,陌生的ID

在我的小webApp微風中,奇怪的事情正在發生。我在網站中添加了一些功能,可以在數據庫中添加任務。它工作正常。

要做到這一點,我有一個控制器。

控制器自動生成,控制器文件夾>添加控制器,我選擇第二類控制器有Breeze Web API Controller。 代碼生成:

[ResponseType(typeof(Mission))] 
[System.Web.Http.AcceptVerbs("POST")] 
public async Task<IHttpActionResult> PostMission(Mission mission) 
{ 
    try 
    { 
     mission.UserId = 1; 
     mission.RoleId = 1; 

     mission.LibelleMission = mission.LibelleMission.Replace("\n", "<br/>"); 
     mission.Projet = mission.Projet.Replace("\n", "<br/>"); 
     mission.EnvironnementTechnique = mission.EnvironnementTechnique.Replace("\n", "<br/>"); 

     db.Missions.Add(mission); 
     await db.SaveChangesAsync(); 

     return CreatedAtRoute("DefaultApi", new { id = mission.MissionId }, mission); 
    } 
    catch (Exception e) 
    { 
     return CreatedAtRoute("DefaultApi", new { id = mission.MissionId }, mission); 
    } 
} 

的任務在數據的基礎上正確地插入。

在數據庫中的任務的主鍵是MissionId,它是一個int,身份,從1開始,並遞增1。

我在表中具有這些值:

MissionId ClientId UserId 
1 28 1 
2 28 1 
3 2 1 
4 28 1 
5 5 1 
6 9 1 
7 6 1 
1006 6 1 
1007 10 1 
1008 10 1 
2006 11 1 
2007 32 1 
2008 6 1 
2009 17 1 
2010 6 1 
2011 12 1 
2012 2 1 
2013 8 1 
2014 6 1 
2015 5 1 
2016 11 1 
2017 15 1 
2018 7 1 
2019 10 1 
3016 6 1 
4016 13 1 
4017 18 1 
4018 7 1 
4019 16 1 
4020 2 1 
4021 4 1 
4022 3 1 

作爲你可以看到,MissionId不是(總是)連續的,花費從7到1006,或者從1008到2006。

你對這種奇怪的行爲有什麼想法嗎?糾正這個?

謝謝你的幫助。

+0

是否有問題或者您只是好奇而已? –

+0

[身份增量在sql server數據庫中跳轉]的可能重複(http://stackoverflow.com/questions/14146148/identity-increment-is-jumping-in-sql-server-database) –

回答

1

聽起來好像在這個問題identity increment is jumping in sql server database問題回答了一個問題,看到Martin Smith

SQL Server中的答案2012現在分配標識值,並重新啓動服務「失去」未使用的值時使用的1000高速緩存大小。

見馬丁answer建議解決

如果你想舊的行爲,您可以設置SQL Server和跟蹤標誌272來啓動,也可以使用序列而不是身份,並設置有高速緩存大小爲0的序列