执行SaveChanges方法时,我对实体框架的行为有疑问.
我有一个具有标识列的实体,并且只是意识到如果我调用SaveChanges(对于新插入),并且它失败,那么我的DB中的标识列会增加.
我以前的Identity列值等于7,我调试我的代码和SaveChanges方法失败了5次,因为我错过了插入一个必需的值,当它解决了我发现我的身份列值现在是13.
这是正常行为吗?当Entity Framework无法提交到我的数据库时,有没有办法避免增加标识列值?
感谢任何帮助
解决方法
这是sql的行为,而不是实体框架.你应该看看Dbreseed命令并为你的表执行它,如果你不想让身份被浪费.检查这个问题
RESEED identity columns on the database如果我是你我就不会烦恼.而不仅仅是使用Bigint数据类型作为标识列