微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

我以前的Identity列值等于7,我调试我的代码和SaveChanges方法失败了5次,因为我错过了插入一个必需的值,当它解决了我发现我的身份列值现在是13.

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

感谢任何帮助

解决方法

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐