实体框架SaveChanges失败增量标识列

时间:2014-10-02 15:53:00

标签: c# sql-server entity-framework

执行SaveChanges方法时,我对实体框架的行为有疑问。

我有一个具有标识列的实体,只是意识到如果我调用SaveChanges(对于新的插入),并且它失败了,那么我的数据库中的标识列增加了。

我曾经将Identity列的值等于7,而我正在调试我的代码并且SaveChanges方法失败了5次,因为我错过了插入所需的值,当它成功时我注意到了我的身份列值现在是13。

enter image description here

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

感谢任何帮助

1 个答案:

答案 0 :(得分:1)

这是Sql的行为,而不是实体框架。你应该看一下Dbreseed命令并为你的表执行它,如果你不想让身份被浪费。检查这个问题RESEED identity columns on the database如果我是你我不会打扰。而只是使用Bigint数据类型作为标识列