C#实体框架:Can';t创建ID为的行,该行以前已删除

C#实体框架:Can';t创建ID为的行,该行以前已删除,c#,sql,linq,entity-framework,C#,Sql,Linq,Entity Framework,我已经在实体框架中为我的数据库创建了一些数据,例如具有唯一ID 1、2和3的行。然后,我使用 int selectedId = (int)ComboChoosePerson.SelectedValue; // selected ID person = db.Persons.First(p => p.Id == selectedId); // find the person db.Persons.Remove(person); // remove from DB db.SaveChan

我已经在实体框架中为我的数据库创建了一些数据,例如具有唯一ID 1、2和3的行。然后,我使用

int selectedId = (int)ComboChoosePerson.SelectedValue;  // selected ID
person = db.Persons.First(p => p.Id == selectedId);  // find the person
db.Persons.Remove(person);  // remove from DB
db.SaveChanges();

当我尝试创建ID=1的新行时,它会将ID更改为4、5、6等。我需要访问所有可用的ID。我缺少什么?

这是SQL功能。您不应该关心行的ID是什么,因为数据库只是使用它在内部跟踪内容。该表提供下一个可用ID,但不回收已使用的ID,否则它将无法工作。您的ID只是在表中查找记录的标记。为什么ID对您很重要,即您在问题中是否有您认为您应该使用ID做的事情?

ID也是一个人的个人身份号码。如果某人开始在公司工作,然后离开,然后又开始在那里工作,我需要为他使用相同的ID。如果用户可以返回,您不应该删除记录。如果必须删除该记录,则可以将用户id移动到另一列,并在用户id离开挂起的返回表时保留该记录。我会使用guid作为他们的id。你需要检查你的方法,因为删除用户记录会按照tin上的说明进行,并会删除他们的所有数据删除数据,保留id。这听起来可以接受。而且这也不会是代码的大变化。谢谢