c# - 实体框架分配 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; }
解决方案
我能想到两种可能的方法:
- 截断表而不是删除记录它可能会抛出异常,以防它在其他表中被引用为外键。
- 在 sql server 上运行
SET IDENTITY_INSERT <table name> ON
,基本上它允许您在标识列中显式输入值。但请记住,您必须在代码中设置 id。但请记住,您可能会失去列的唯一性,然后您必须在代码中以编程方式确保它。
推荐阅读
- php - 如何修复此 PHP 错误尝试访问 wordpress 中 bool 类型值的数组偏移量?
- angular - 如何在primeng中为日期范围添加自定义类
- java - AES/GCM/NoPadding JAVA 加密与 C# 加密不匹配
- python - 无法导入 utils ModuleNotFoundError:没有名为 'utils.general' 的模块
- sql - 如何在 Big Query 中合并具有不同列名的两个表的数据
- html - 在 shadow-root 中插入组件时不应用角度样式
- react-admin - 为什么反应管理员在没有任何交互的情况下发送多个对同一资源列表的请求
- c# - SignalR 和 WebAPI 之间的集成
- list - 获取元组映射中所有列表的总长度
- json - 将 HTTP 响应添加到缓存