c# - Entity Framework SaveChanges 失败增量标识列

标签 c# sql-server entity-framework

我对执行 SaveChanges 方法时 Entity Framework 的行为有疑问。

我有一个实体,它有一个Identity Column,我意识到如果我调用SaveChanges(对于新插入),它失败了,那么我的Identity Column在我的数据库中增加了。

我以前的 Identity 列值等于 7,我在调试我的代码时 SaveChanges 方法失败了 5 次,因为我没有插入所需的值,当它成功时我注意到我的身份列值现在是 13。

enter image description here

这是正常行为吗?当 Entity Framework 无法提交到我的数据库时,有没有办法避免增加标识列值?

感谢任何帮助

最佳答案

这是 Sql 的行为,而不是 Entity Framework。如果您不想浪费身份,您应该查看 Dbreseed 命令并为您的表执行它。检查这个所以问题 RESEED identity columns on the database如果我是你,我就不会打扰。相反,只需将 Bigint 数据类型用于标识列

关于c# - Entity Framework SaveChanges 失败增量标识列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26164651/

相关文章:

c# - 我想每分钟运行一个从我的 OnAppearing() 开始的方法。我需要将其作为任务运行吗?

c# - 在 C# 中捕获 MySQL 触发信号

sql "Group By"和 "Having"

c# - 发生数据库错误后 DbContext 是否可以安全使用

c# - 如何使用 RsaCng 作为 SignedXml 的 SigningKey?

c# - 如何在 Unity 中为游戏添加重启功能?

sql - 从sql server中的字符串末尾提取子字符串

sql-server - 加入整数会比加入 nvarchar 更快吗?

c# - linq "System.NotSupportedException"有错误

c# - 从表中获取实体列表会导致 500 错误 - Entity Framework