执行SaveChanges
方法时,我对实体框架的行为有疑问。
我有一个具有标识列的实体,只是意识到如果我调用SaveChanges
(对于新的插入),并且它失败了,那么我的数据库中的标识列增加了。
我曾经将Identity列的值等于7,而我正在调试我的代码并且SaveChanges
方法失败了5次,因为我错过了插入所需的值,当它成功时我注意到了我的身份列值现在是13。
这是正常行为吗?当Entity Framework无法提交到我的数据库时,有没有办法避免增加标识列值?
感谢任何帮助
答案 0 :(得分:1)
这是Sql的行为,而不是实体框架。你应该看一下Dbreseed命令并为你的表执行它,如果你不想让身份被浪费。检查这个问题RESEED identity columns on the database如果我是你我不会打扰。而只是使用Bigint数据类型作为标识列