主键自动增量

时间:2018-06-15 18:38:54

标签: c# mysql entity-framework

问题:以前我调用了下面的函数。

ArchiveDeletedPatient.ID = 18
_archiveDB2.patient.Add(ArchiveDeletedPatient);
_archiveDB2.SaveChanges();

之后我删除了患者数据库中的所有记录(从患者中删除),现在在我的数据库中它是空的。我再次调用了上面的函数,但是这次它自动将ID增加到19并插入到数据库中。我发布了上面的函数,它不断递增。如何删除这样的功能?我不需要自动增量。

有人可能会说这是因为数据库设置。我尝试使用Microsoft SQL Server Management Studio 17“INSERT INTO PATIENT TABLE VALUES(18,...)”手动插入。它允许我插入并且当表中有这样的ID时。它不会自动递增而只会提示我如何在c#linq。

中删除这种自动递增功能

2 个答案:

答案 0 :(得分:1)

自动增量功能不是linq c#。 查看表格属性,你可以编辑pk以删除" identity"删除自动增量o添加"身份"。 如果在bbdd中激活了身份,则在数据库中计算id,并且linq将其返回到您的实体中。

答案 1 :(得分:-1)

自动递增不是Linq的功能。这是数据库的功能。 以下是从MS SQLServer中删除自动增量的完整说明:

  • 打开您的数据库。
  • 右键单击表格并选择“设计”。
  • 选择要删除自动递增的特定列。
  • 在列属性窗口中,单击“身份规范”字段,然后取消选中此项。
  • 保存表格设计。

这是......

enter image description here

注意:

如果您正在使用Entity Framework并使用[DatabaseGenerated(DatabaseGeneratedOption.Identity)]指定您的字段,请删除此注释

将其替换为[DatabaseGenerated(DatabaseGeneratedOption.None)]