首页 > 解决方案 > 实体框架分配 ID

问题描述

我正在开发一个使用 SQL Server 数据库的程序。使用 PUT/POST,我将元素添加到数据库中。我在数据上运行了一些代码,然后将它们删除。现在的问题是,当我添加新数据时,添加的数据会以越来越高的 id 号添加,而不是从 0 开始。

我四处搜索,发现了一些我认为可行的方法,即在 ID 上方添加以下行。然而,这不起作用,当我放入数据库时​​,我仍然得到一个越来越大的 ID 号。

有解决方法吗?

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public virtual int Id { get; set; }

public int ProducedkW { get; set; }
public int ConsumedkW { get; set; }

public string Type { get; set; }
public int DifferencekW { get; set; }

标签: c#sql-serverentity-framework

解决方案


我能想到两种可能的方法:

  1. 截断表而不是删除记录它可能会抛出异常,以防它在其他表中被引用为外键。
  2. 在 sql server 上运行SET IDENTITY_INSERT <table name> ON ,基本上它允许您在标识列中显式输入值。但请记住,您必须在代码中设置 id。但请记住,您可能会失去列的唯一性,然后您必须在代码中以编程方式确保它。

推荐阅读